![]() |
Probleme mit VAL Funktion
Hallo zusammen,
habt ihr das Problem schonmal folgendes Problem gehabt:
Delphi-Quellcode:
Bei einem Kollegen ist z=0 und bei mir ist z=1.
procedure TForm1.FormCreate(Sender: TObject);
var tmpDouble : Double; z : Integer; begin Val('', tmpDouble, z); if z = 0 then ShowMessage('Mist'); end; Habt ihr eine Idee, woran das liegen kann. Beides Win7 32bit. Viele Grüße Alex |
AW: Probleme mit VAL Funktion
Hallo,
Ich schätze mal einfach, dass die Funktion Val bei Misserfolg gar nichts in z reinschreibt. Und in lokalen Variablen kann potentiell ALLES stehen wenn sie nicht initialisiert sind. Steht denn bei euch beiden das Gleiche drin wenn du den Code so änderst?
Delphi-Quellcode:
PS: Es gibt auch StrToIntDef!
var
tmpDouble : Double; z : Integer; begin z := 0; Val('', tmpDouble, z); if z = 0 then ShowMessage('Mist');
Delphi-Quellcode:
var
z : Integer; begin z := StrToIntDef('',0); if z = 0 then ShowMessage('Mist'); |
AW: Probleme mit VAL Funktion
Wobei hier wohl TryStrToInt die bessere Option wäre, aber das prüft intern auch mit Val.
|
AW: Probleme mit VAL Funktion
Z gibt die Fehlerstelle an (so wie es in der OH auch erklärt ist)
kein Fehler = 0 Fehler > 0 Zitat:
Und du nicht. 1 = Fehler an erster Stelle, was bei dir das Stringende ist, da du "nichts" übergeben hast. Zitat:
|
AW: Probleme mit VAL Funktion
Problem gefunden!
Ein nicht installiertes SP3 (UpdatePack3) von RAD2009 führt zu dem Fehler. Mit dem UpdatePack3 ist der Fehler behoben im VAL. Ist also wirklich ein Bug gewesen... Viele Grüße Alex |
AW: Probleme mit VAL Funktion
Bei dir ist Z jetzt 0? (in dem Beispiel aus Post #1)
Dann hast du jetzt einen Bug eingebaut, denn die 1 war schon richtig. :gruebel: |
AW: Probleme mit VAL Funktion
Zitat:
Da aber ja heutzutage kein vernünftiger Programmierer auf die Idee käme, Val() in einem neuen Code zu benutzen (:mrgreen:) dürfte die Abwärtskompatibilität das richtige Verhalten definieren. Und diese wurde wohl mit dem Update wiederhergestellt ;) => ![]() |
AW: Probleme mit VAL Funktion
Bei mir sagen D7 und XE was von 1.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:59 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