Personally I would use a TFileStream and FS.Read(S,1) one AnsiChar at a time, concatenating into an AnsiString if you want the info until you have '[End]'#13#10 in the string.
This will have the file pointer at the start of the binary data where you can then FS.Read(MyDWORD,4) or MyByte,1 etc. Ross. From: [email protected] [mailto:[email protected]] On Behalf Of Eric A Sent: Monday, 5 November 2012 9:08 a.m. To: Delphi ListServer Subject: [DUG] Reading Different Types from a Binary File This is probably a no-brainer to most of the DUG members, especially those used to pointers ... I need to read and extract data from a binary file which comprises: - a header with character type strings, each terminated by CR LF (not nulls) - binary data area with a mixture of byte types, word types and double word types - a file terminator of 0xFFFF hex The files are not huge, less than 500KB, as the structure originates from old memory-constrained microprocessors of the 80's. The header looks like it is based on the old INI file format and is of the form: [Header] Created=1349233072 Title= Type=D Version=162 [End] The binary data area follows next. It comprises different types of data blocks, with sub blocks, each of which contains either bytes, words or double words of data in a pre-defined pattern or structure depending on the type of data block. I can read the file into a buffer (array of Char) but I currently have a chunk of somewhat ugly code to parse the header and find the start position of the binary data after the '[End] CR LF' string. After that I need to extract data of various types depending on the specified datablock types, which I though I might have to use pointers for. What's the best approach for a) Extracting the header strings - is there a Delphi function to extract CR LF terminated character sequences as strings and maintain a pointer to the end of the string? b) Creating functions for ReadByte, ReadWord, ReadDoubleWord and incrementing the pointer appropriately in each case ? Eric
_______________________________________________ NZ Borland Developers Group - Delphi mailing list Post: [email protected] Admin: http://delphi.org.nz/mailman/listinfo/delphi Unsubscribe: send an email to [email protected] with Subject: unsubscribe
