Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.079 c
9-1069953412
Stilgar
2003-11-27 20:16
2004.04.11
Дайте пару советов новичку.


6-1079346465
Aleksandr
2004-03-15 13:27
2004.04.11
Что быстрее в рассылке электронной почты?


1-1082698992
tlan
2004-04-23 09:43
2004.04.11
dll с отчетом выкидывается ошибка EOleSysError


9-1065013171
ZLODey
2003-10-01 16:59
2004.04.11
Баги при компиляции игры или примера...


3-1081957334
minstrel
2004-04-14 19:42
2004.04.11
TClientDataSet





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский