Servus!
Also, vor einigen Wochen habe ich es geschafft, einen HEX, in einen double zu konvertieren. (Der HEX-Wert war in einer Binärdatei welceh ich als String ausgelesen habe.) Da es sich um eine maximal 8-Bytedarstellung handelt, hab ich das Problem folgendermaßen gelöst:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39:
| function SubHextoDouble(Hex: String): double; var a: Integer; var HexStr : String; begin SetLength(HexStr, Length(Hex) * 2); BinToHex(PChar(Hex), PChar(HexStr), Length(Hex)); a:=StrtoInt('$' + HexStr); SubHextoDouble := a;
end; function HextoDouble(Hex: String): double; var hex1, hex2 : String; b1, b2 : Double; stellen, delta : Integer; begin stellen := length(Hex); delta := stellen - 4; if stellen <5 then begin HextoDouble := SubHextoDouble(hex); end else begin Hex1 := copy(Hex, 1, 4); hex2 := copy(Hex, 5, delta); b1 := SubHextoDouble(Hex1); b2 := SubHextoDouble(Hex2); HextoDouble := b2 + b1 * Power(16, delta); end;
end; |
So, und nun muß ich das ganze auch Rückgängigmachen, und ich hab im Augenblich leider keine Idee wie ich des machen könnte?
Hat einer von Euch zufällig eine?
Herzlichen Dank und lieben Gruß
Smartie