Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.11;
Скачать: CL | DM;

Вниз

Помогите считать двоичный файл   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.035 c
1-1082615490
Narayan
2004-04-22 10:31
2004.04.11
показ формы


1-1080139897
BaDeVlad
2004-03-24 17:51
2004.04.11
Глюк функции AnsiLowerCase?


7-1075963179
Creator
2004-02-05 09:39
2004.04.11
Убийство приложения


3-1079076681
Gennadiy
2004-03-12 10:31
2004.04.11
Проблема с событием OnChange


4-1076003841
sergey1
2004-02-05 20:57
2004.04.11
Чужой процесс...