Hallo liebe Community,
ich bin neu hier und habe ein kleines Problem mit einem Programm:
Ich möchte aus einer Datei per TFileStream 4 Bytes auslesen lassen, und diese dann in eine Gleitkommazahl konvertieren. Als Ausgabe habe ich hier schlicht ein einfaches Editfeld genommen.
Delphi-Quellcode:
procedure TGEOtool.ExportGEOClick(Sender: TObject);
var GEO:TFileStream;
A:Single;
begin
GEO:=TFileStream.Create('F:\Tools\GEOtool\Files\Autobahn.geo', fmOpenRead);
GEO.Position:=0;
GEO.Seek(311, sofromcurrent);
GEO.ReadBuffer(A, 4);
Edit1.Text:=FloatToStr(A);
GEO.Free;
end;
Problem an der ganzen sache: Delphi schmeißt mir die Zahl -4,17242134176377E-8 um die Ohren. an sich eigentlich eine gute Sache, da das Programm dann immerhin schonmal seine Arbeit tut. Wenn ich mir aber die Datei in einem Hex-Editor ansehe, die 4 Bytes ab 311 nehme und diese dann in einen Onlinekonverter (z.b:
Ich bin ein Link) eingebe, kommt eine andere Zahl (45.050) heraus. Was mache ich also demnach falsch?
Hier noch ein Bild aus dem Hex-Editor (die betroffenen Bytes sind (sollten) markiert sein, d.h. 311-314):