![]() |
Bug in StrToInt64 ?!
Hallo,
ich hab folgendes Problem, ich lese aus einer datei 8 Byte hexzahlen aus und will diese in einen int64 wert konvertieren, was eigentlich genau dessen wertebereich ist. Soweit die Theorie. Mein Problem ist jetzt das ich z.B. beim wert $FFFFFFFFFFFFFFFF (=-1) die Fehlermeldung bekomme, dass dieser Wert keine gültige integer zahl ist, obwohl diese eigentlich noch im bereich von int64 liegt. Man kann das auch ganz einfach Nachvollziehen:
Delphi-Quellcode:
Ich verwende gerade Delphi 6. Kennt jemand diese Problem und vielleicht auch noch ein Workaround. Oder kann mir jemand sagen wo ich eine bessere strToInt64 funktion herbekomme die mit diesen werten zurechtkommt?
procedure Test();
var t, t2: int64; tStr : String; begin t := -1; tStr := inttohex(t,20); ShowMessage(tStr); t2 := strtoint64('$'+tStr); //Hier gibts dann die Exception ShowMessage(inttostr(t2)); end; mfg Blizzard |
Re: Bug in StrToInt64 ?!
|
Re: Bug in StrToInt64 ?!
Das liegt daran das Float ne andere Hex Representation hat als Integer
|
Re: Bug in StrToInt64 ?!
Autsch, Richtig. Sorry! :oops:
Delphi-Quellcode:
Funktioniert bei mir ohne Fehler. ( D6pe )
var
t, t2: int64; tStr : String; begin t := -1; tStr := inttohex(t, 20); t2 := strtoint64('$'+ tStr); ShowMessage(tStr + ' <-> ' + inttostr(t2)); end; |
Re: Bug in StrToInt64 ?!
Hast du irgendwelche Updates installiert oder sowas in der Art?
Ich arbeit hier nämlich leider ohne irgendwas derartiges. Die Firma hier bekommt das nämlich einfach ned gebacken. :wall: |
Re: Bug in StrToInt64 ?!
Zitat:
|
Re: Bug in StrToInt64 ?!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:56 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz