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