Einzelnen Beitrag anzeigen

the3dcloser

Registriert seit: 5. Okt 2013
19 Beiträge
 
#1

Probleme beim Konvertieren von Hex to Float

  Alt 5. Okt 2013, 20:18
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):
Miniaturansicht angehängter Grafiken
hexeditor.jpg  
  Mit Zitat antworten Zitat