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

Reply via email to