![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
из файла мне надо считать число. оно занимает 5 байт. формат - двоичный без знака, но дробный, но не IEEE. одно то что число занимает 5 байт - уже ставит меня в тупик. подскажите как такое число считать?
|
|
#2
|
||||
|
||||
|
Чтобы понять о каком формате идёт речь, приведи HEX-формат того что нужно считать и DEC-соответствие.
|
|
#3
|
|||
|
|||
|
00 03 4E 80 00 = 846.5
первые три байта отвечают за целую часть 00 03 4E = 846 а последние два видимо за дробную 80 00 = 0.5 вопрос - как прочитать такое число и правильно его распознать. |
|
#4
|
|||
|
|||
|
если в число в самом начале файла, то:
PHP код:
так распознать PHP код:
Последний раз редактировалось Pyro, 20.03.2012 в 09:41. |
| Этот пользователь сказал Спасибо Pyro за это полезное сообщение: | ||
Tonyy (20.03.2012)
| ||
|
#5
|
||||
|
||||
|
Код:
program Project1;
{$APPTYPE CONSOLE}
uses
Windows, SysUtils;
var
hFile: THandle;
Buffer: array [0..4] of Byte;
Dummy: Cardinal;
i, f: Integer;
begin
hFile:=CreateFile('Project1.txt', GENERIC_READ, 0, nil, OPEN_EXISTING, 0, 0);
ReadFile(hFile, Buffer, 5, Dummy, nil);
CloseHandle(hFile);
i:=(Buffer[0] shl 16)+(Buffer[1] shl 8)+Buffer[2];
f:=(Buffer[3] shl 8)+Buffer[4];
Writeln(Format('%.2f', [i+f/$10000]));
Readln;
end. |
| Этот пользователь сказал Спасибо NumLock за это полезное сообщение: | ||
Tonyy (20.03.2012)
| ||
|
#6
|
|||
|
|||
|
большое спасибо!
|