Главная страница
    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.045 c
6-1079741156
piratehnik
2004-03-20 03:05
2004.04.11
Как вернуть сокеты в делфи 7 ?


1-1080018399
Pr0ger
2004-03-23 08:06
2004.04.11
List Box


7-1076237725
I_V_N_I_S_H
2004-02-08 13:55
2004.04.11
Перехват клавиш


1-1082654790
DillerXX
2004-04-22 21:26
2004.04.11
Ctrl + V


1-1082613339
Alexey
2004-04-22 09:55
2004.04.11
Файлы





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский