I have a binary file with data stored in an old format [Microsoft Binary Format (QBasic)]
The file is configured like this
-----------------------------------------------------
Start Byte | End Byte | Lenght | Description |
-----------------------------------------------------
0 | 3 | 4 | date format YYMMDD|
-----------------------------------------------------
4 | 7 | 4 | Float |
-----------------------------------------------------
8 | 11 | 4 | Float |
-----------------------------------------------------
\
\
\
-----------------------------------------------------
24 | 27 | 4 | Float |
-----------------------------------------------------
The first 4 bytes contain the date and reset all in Float like 34.5
When i read the file using BinaryRead i do not know to convert to date and float
Here is my code
========================================================
FileStream fs;
BinaryReader br;
byte[] buffer = new byte[28];
int intBuffer = 0;
fs = File.Open("myFile.dat", FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
br = new BinaryReader(fs);
while ((intBuffer = br.Read(buffer, 0, 28)) > 0)
{
DateTime date = GetDateOutOfByte(buffer, 0, 3);
float f1 = GetFloatOutOfByte(buffer, 4, 7);
float f2 = GetFloatOutOfByte(buffer, 8, 11);
float f3 = GetFloatOutOfByte(buffer, 12, 15);
float f4 = GetFloatOutOfByte(buffer, 16, 19);
float f5 = GetFloatOutOfByte(buffer, 20, 23);
float f6 = GetFloatOutOfByte(buffer, 24, 27);
}
-----------------------------
private float GetFloatOutOfByte(byte[] buffer, int Start, int End)
{
string temp = "";
float result =0.0F;
for (int i = Start; i < End; i++)
{
temp += (char)buffer[i];
}
// How to convert the temp to float?
return result;
}
------------------------------
private DateTime GetDateOutOfByte(byte[] buffer, int Start, int End)
{
string temp = "";
DateTime result;
for (int i = Start; i < End; i++)
{
temp += (char)buffer[i];
}
// How to convert the temp to Date?
return result;
}
------------------------------
Any Help Please