Re: Binary file byte ordering
- From: "alanglloyd@xxxxxxx" <alanglloyd@xxxxxxx>
- Date: Wed, 23 Jan 2008 01:12:56 -0800 (PST)
On 22 Jan, 17:49, groufo...@xxxxxxx wrote:
Hello:
I have a question that I hope someone experienced with Delphi can
answer...
I am using a program to read a binary file that was written in Delphi.
The data is Delphi's extended
precision type, which is 10 bytes. I need to convert those over to a
double precision number (8 bytes)
Here's the question: exactly how does the Delphi compiler interpret
those 10 bytes? I'll take a step
back....I know that the actual readfile is done by a win32 call
through windows app. So I guess
I have 2 questions:
1 - How are the bytes ordered when they are read in? This is critical
because I am reading
in a byte at a time (as U8)
2 - What is the ordering of the bytes....The endian-ness?
I have an algorithm to convert the byes that constitute the extended
precision to doubles,
but I guess it won't be very useful if I cannot get the byes ordered
correctly!
Ignoring endian issues (ie assuming that you have reversed the 10
bytes on an Intel PC) you could bit-twiddle in your own language like
this (Bit0 == LSB) ...
Note value of Bit10(ext)
Discard Bit0 - Bit 10(ext)
Copy Bit11 - Bit62(ext) to Bit0 - Bit51(double)
Discard Bit63 - Bit67 (ext)
Copy Bit68 - Bit79(ext) to Bit52 - Bit63(double)
If Bit10(ext) = 1 then set Bit0(double) to 1
Alternatively a bit of assembler on the FP processor could do it.
Perhals something like ...
Set PC (precision Control) to 11 (64 bits)
Read value into FP
Set PC to 10 (53 bits)
Write value from FP
... but I'm ignorant on assembler <g>
Even better, get an old (v2 onwards) copy of Delphi and write a simple
TFileStream read - convert extended to double - write routine.
Alan Lloyd
.
- Follow-Ups:
- Re: Binary file byte ordering
- From: alanglloyd@xxxxxxx
- Re: Binary file byte ordering
- References:
- Binary file byte ordering
- From: groufosse
- Binary file byte ordering
- Prev by Date: Re: Binary file byte ordering
- Next by Date: Re: Binary file byte ordering
- Previous by thread: Re: Binary file byte ordering
- Next by thread: Re: Binary file byte ordering
- Index(es):
Relevant Pages
|