Форум: "Основная";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];
ВнизПомогите считать двоичный файл Найти похожие ветки
← →
ruslan_as © (2004-03-23 17:11) [0]Помогите новичку считать двоичный файл:
Нужны функции и процедуры (и вообще как мне вытащить эти данные в нормальный вид).
Файл содержит набор двоичных записей следующего формата:
смещение 0 длина 3 - Дата данных (месяц:день:год)
смещение 3 длина 2 - время данных (часы:минуты)
смещение 5 длина 4 - Расход
и т.д.
Под руками нет книги, которая расписывала функции и процедуры по работе с двоичными данными. Если кто знает ссылку почитать - не пожалейте - сбросте... Спасибо всем сочувствующим...
← →
cosinus © (2004-03-23 17:13) [1]http://valera.asf.ru/delphi/help/delphi.asp?TypeID=2
← →
Digitman © (2004-03-23 17:17) [2]
> длина 3 - Дата данных (месяц:день:год)
самое интересное здесь - в каком формате в 3-х байтах хранится инф-ция о составляющих даты
← →
MBo © (2004-03-23 17:18) [3]http://delphi.vitpc.com/lyceum/seminar.asp?partID=4
← →
Anatoly Podgoretsky © (2004-03-23 17:43) [4]MBo © (23.03.04 17:18) [3]
По сообщению Королевства Дельфи адрес
http://delphi.vitpc.com больше не действует, хотя это и не так, но в любом случае артес пропадет, надо использовать адрес http://www.delphikingdom.com
← →
Юрий Зотов © (2004-03-23 19:55) [5]type
TInfo = packed record
Month, Day, Year, Hours, Mins: byte;
Flow: integer // или single - зависит от задачи
end;
var
F: file of TInfo;
А далее - по уже приведенным ссылкам.
← →
Германн © (2004-03-24 02:21) [6]Добавление к Юрий Зотов © (23.03.04 19:55) [5]
Первые пять байт вполне могут быть в BCD формате. Стоит проверить, имхо.
← →
Anatoly Podgoretsky © (2004-03-24 08:59) [7]А зачем гадать?
← →
ruslan_as © (2004-03-24 10:57) [8]Спасибо за ссылки сброшенные вчера! Спасибо Анатолию Подгорецкому лично за прекрасный семинар. Но моих знаний не хватило, что бы разобораться. В примерах на семинаре только запись в двоичный файл, а мне надо считать, да еще использовать смещение...
Я остановился на этом, но считываю я что-то не то...
Выручайте..
procedure TForm1.Button1Click(Sender: TObject);
var F:file;
NRead:integer;
Buf: array[1..1024] of Char;
begin
AssignFile(F, ExtractFileDir(Application.ExeName)+"\Hd02016.043");
FileMode := FmOpenRead;
Reset(F, 1);
repeat
BlockRead(F, Buf, SizeOf(Buf), NRead);
until NRead = 0;
CloseFile(F);
← →
Digitman © (2004-03-24 11:29) [9]TMyRec = packed record
MyDate: array[0..2] of Byte;
MyTime: array[0..1] of Byte;
MyValue: array[0..3] of Byte;
end;
var
fs: TFileStream;
MyRec: TMyRec;
RecNum: Integer;
..
fs := TFileStream.Create(ExtractFileDir(Application.ExeName)+"\Hd02016.043", fmOpenRead);
try
RecNum := fs.Size div SizeOf(TMyRec);
while RecNum > 0 do
begin
fs.ReadBuffer(MyRec, SizeOf(TMyRec));
...
Dec(RecNum);
end;
finally
fs.Free;
end;
← →
panov © (2004-03-24 11:33) [10]>ruslan_as © (24.03.04 10:57) [8]
Не надо дублировать ветки.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.041 c