Unter Windows werden Daten in dieser Form gespeichert. Zuerst kommt das niederwertigste Byte, am Ende das höherwertigste. Darum wird aus der Zahl $e6010000 beim Speichern auch
Quelltext
Das ist also kein Fehler. Ein Fehler wäre das "Konvertieren" (das Umdrehen der Bytes). Wenn es sich wirklich um
eine Zahl (32Bit) handelt, dann kannst du davon ausgehen, dass der Wert $e6010000 der richtige ist.
Vorausgesetzt die Datei, in der der Wert gespeichert ist, stammt ursprünglich auch von einer Windows-Plattform.
Ich habe es erst kürzlich
erwähnt: soweit ich weiß, wird beim Mac genau "umgekehrt" gespeichert. Wie das bei Linux ist, weiß ich nicht.
Dadurch ergibt sich für dich lediglich die Aufgabe, herauszufinden, ob die Datei plattform-übergreifend ausgetauscht werden kann/muss/soll, oder ob es sich nur um eine Windows-Datei handelt.
Du kannst übrigens ein Experiment machen:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| var f : file; iInt : integer; begin AssignFile(f,'test.tmp'); ReWrite(f,1);
iInt := $01020304; BlockWrite(f,iInt,sizeof(integer)); CloseFile(f); end; |
Kannst ja im Hex-Editor mal schauen, wie der Wert $01020304 gespeichert wird.
