Jonas Maebe wrote:
On 09 Mar 2012, at 21:38, Mark Morgan Lloyd wrote:

Can an Advanced Record, i.e. a record which as well as having fields has at 
least one embedded function, be safely used as a cast or type transfer 
overlaying unstructured bytes?

Yes.

Thanks Jonas, I don't think I need to do it but I thought it was a fair question: better safe than sorry.

OK, so hopefully I can get away with another. I'm looking at a program written in Delphi, which reads a file containing the image of an IBM mainframe tape. This has a record:

Type TAWSHeader=Record
       ThisSize: Word;
..

ThisSize is defined as being in Intel-style little-endian format, so I'm going to have problems if compiling the program for SPARC or (hypothetically) zSeries which are big-endian. If I understand things correctly I can do this:

Type TAWSHeader=Record
       ThisSizeLE: Word;
       function ThisSize: Word;
..

but is there any way to define something like an endianness-correcting type, i.e.:

Type TAWSHeader=Record
       ThisSize: WordLE;
..

where by the time ThisSize is accessed any disparity has been corrected?

--
Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk

[Opinions above are the author's, not those of his employers or colleagues]
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to