Graeme Geldenhuys wrote:
By the way, I am reading in the Table of Contents data for an OS/2 INF file.
// now increment pEntry to point to next data structure
// below, .Length is in bytes
inc( pEntry, pEntry^.Length);
inc(PEntry, 1)
since it increments by the size of the type
No, I don't think that is correct. The data pContentData is pointing at,
holds various structures of differing sizes. pEntry^.Length says that
all data relating to one TOC entry is XXX bytes in length. That means
the TTOCEntryStart structure itself (only 3 bytes) and various other
structures making up the difference.
If pentry differs in length, then use a byte pointer, (for which inc
will work in bytes), and cast it onlt when you access the data.
I don't know if you can do it the other way round (eg trick inc to
belive it's a byte pointer by casting):
inc(pbyte(pentry), pentry.length); // no idea if that will work, never
tried
Martin
_______________________________________________
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal