04 98 42 4E 80 AC 42 4E 4A 00 00 00 0A
Bu örnek veri bir kayıta ait başlangıç ve bitiş tarihi, kamera no ve kaydın tutulduğu dosya adı bilgilerini tutuyor. Buna göre gerekli parse işlemleri sonunda;
kodlar aşağıdadır:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace WindowsFormsApplication2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
string ReverseString(string str)
{
//str katar
//01234567 01234567
//0498424E 4E429804
char[] katar = new char[str.Length];
for (int i = 0; i < str.Length/2; i++)
{
katar[2 * i] = str[str.Length - 2*i - 2];
katar[2 * i + 1] = str[str.Length - 2*i-1];
}
return new string(katar);
}
private void button1_Click(object sender, EventArgs e)
{
string baslama, bitis, dosyano, kamera;
string satir = "";
StreamReader st = new StreamReader("dosya.txt");
while ((satir=st.ReadLine())!=null)
{
satir = satir.Replace(" ", "");
baslama = satir.Substring(0, 8);
baslama = ReverseString(baslama);
int sayi=int.Parse(baslama, System.Globalization.NumberStyles.HexNumber);
textBox1.Text = ConvertFromUnixTimestamp((double)sayi).ToString();
bitis = satir.Substring(8, 8);
bitis = ReverseString(bitis);
sayi = int.Parse(bitis, System.Globalization.NumberStyles.HexNumber);
textBox2.Text = ConvertFromUnixTimestamp((double)sayi).ToString();
dosyano = satir.Substring(16, 8);
dosyano = ReverseString(dosyano);
sayi = int.Parse(dosyano, System.Globalization.NumberStyles.HexNumber);
textBox3.Text = "hik"+sayi.ToString();
kamera = satir.Substring(24, 2);
kamera = ReverseString(kamera);
sayi = int.Parse(kamera, System.Globalization.NumberStyles.HexNumber);
textBox4.Text = sayi.ToString();
}
st.Close();
}
DateTime ConvertFromUnixTimestamp(double timestamp)
{
DateTime origin = new DateTime(1970, 1, 1, 0, 0, 0, 0);
return origin.AddSeconds(timestamp);
}
double ConvertToUnixTimestamp(DateTime date)
{
DateTime origin = new DateTime(1970, 1, 1, 0, 0, 0, 0);
TimeSpan diff = date - origin;
return Math.Floor(diff.TotalSeconds);
}
}
}
Hiç yorum yok:
Yorum Gönder