Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Bug in StrToInt64 ?! (https://www.delphipraxis.net/51374-bug-strtoint64.html)

Blizzard 11. Aug 2005 08:03


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:
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;
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?

mfg
Blizzard

turboPASCAL 11. Aug 2005 08:18

Re: Bug in StrToInt64 ?!
 
:gruebel: $FFFFFFFFFFFFFFFF = 1,84467440737096E19

HexStringToFloat

Blizzard 11. Aug 2005 08:39

Re: Bug in StrToInt64 ?!
 
Das liegt daran das Float ne andere Hex Representation hat als Integer

turboPASCAL 11. Aug 2005 09:01

Re: Bug in StrToInt64 ?!
 
Autsch, Richtig. Sorry! :oops:

Delphi-Quellcode:
var
  t, t2: int64;
  tStr : String;
begin
  t := -1;
  tStr := inttohex(t, 20);
  t2 := strtoint64('$'+ tStr);

  ShowMessage(tStr + ' <-> ' + inttostr(t2));
end;
Funktioniert bei mir ohne Fehler. ( D6pe )

Blizzard 11. Aug 2005 09:07

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:

Bernhard Geyer 11. Aug 2005 09:10

Re: Bug in StrToInt64 ?!
 
Zitat:

Zitat von Blizzard
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:

D6 ohne Updates - Auweia. Da waren doch durch den CLX/Kylix-Ausflug noch einige Hammer-Bugs vorhanden.

turboPASCAL 11. Aug 2005 09:10

Re: Bug in StrToInt64 ?!
 
Ja alle zu D6 (PE-Version)

DELPHI DEVELOPER SUPPORT


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:28 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz