Binärdateien einlesen: Problem mit umgedrehten Bytes
10. Dez 2008, 11:40
Hallo alle zusammen,
ich habe bisher leider nirgends eine Antwort zu meinem Problem im Internet gefunden, daher wende ich mich an Euch. Vielen Dank schon mal vorab.
Problem:
Ich möchte mit Delphi eine Binärdatei einlesen, die aus Messdaten besteht. Diese Messdaten umfassen 3D-Knoten. Jeder Knoten belegt dabei jeweils als double 8 Byte für die x-,y- und z-Koordinate. Sprich ein Knoten/Datensatz/Zeile besteht aus 3 * 8 Byte. Anschließend sollen die Daten dann wieder als Textdatei ausgegeben werden.
Soweit so gut, das mit dem einlesen und ausgeben ist eigentlich nicht das Problem, sondern die Tatsache, dass Delphi anscheinend die Bytes falsch herumließt.
Nehmen wir mal ein Beispiel:
Nach IEEE 754 gilt:
Dezimalzahl: 10
Hexadezimal: 40 24 00 00 00 00 00 00
Binärzahl: 0 | 100 0000 0010 | 0100 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
Unterteilung: Vorzeichen | Exponent | Mantisse
Mein Delphi macht daraus aber, obwohl es angeblich auch nach IEEE 754 arbeitet:
Dezimalzahl: 10
Hexadezimal: 00 00 00 00 00 00 24 40
Beinärzahl: 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0010 0100 0100 0000
Unterteilung: ???
Jetzt frage ich micht schon die ganze Zeit, ob das an der verwendeten Hardware, an dem Betriebssystem oder vielleicht an irgendeiner Einstellung von Delphi liegt? Wenn nicht, ist dann halt die Frage, ob es einen Befehlt gibt, der das ganze vielleicht automatisch umdreht?
Naja, wenn es da nichts gibt, werde ich mir wohl die Arbeit machen und selbst eben etwas schreiben, was mir die Doubles Byteweise umdreht, wobei das bei den großen Dateien natürlich viel Extra-Rechenzeit kosten wird.
MFG
Pvt. Joker
|