Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - String in Integer umwandeln
MasterHiggins - Di 07.10.03 12:31
Titel: String in Integer umwandeln
Hi!
Ich würde gerne einen String in einen Integer umwandeln, also so:
Quelltext
1:
| zahlxint:=STRTOINT(zahlxstr); |
Ich WEISS aber nicht ob der String ein gültiger Integerwert wäre.
Wann immer ein nichtgültiger Integerwert in "zahlxstr" steht, würde ich diesen gerne einfach "ignorieren".
Weil momentan stürzt mir natürlich an dieser Stelle mein Programm immer ab.
Thanks:
mfG
MasterHiggins
smiegel - Di 07.10.03 12:50
Hallo,
eine Möglichkeit wäre, die Umwandlung in einen try-Except-Block zu packen:
Delphi-Quelltext
1: 2: 3: 4: 5:
| try zahlxint:=STRTOINT(zahlxstr); except ShowMessage('Keine Zahl!'); end; |
Eine andere Möglichkeit waäre, den String darauf zu prüfen ob er nur Zahlen enthält:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| var i:Integer;
for i:=1 to Length(zahlxstr) do if not (zahlxstr[i] in ['0'..'9']) then begin ShowMessage('Keine Zahl!'); Break; end; |
MasterHiggins - Di 07.10.03 12:59
Danke für Deine schnelle Antwort!
Diesen Try-Block kannte ich gar nicht!
Super Funktion!
An die zweite Möglichkeit habe ich auch gedacht, war mir für meinen Verwendungszweck aber zu aufwendig.
Werde ich sofort mal testen
Also vielen Dank nochmal!
mfG
MasterHiggins
MasterHiggins - Di 07.10.03 13:07
Hab's grade mal getestet und es liefert immer noch die selbe Fehlermeldung ( '' ist keine gültiger Integerwert), Quelltext sieht bei mir so aus:
Quelltext
1: 2: 3: 4: 5:
| TRY verjahrint:=StrToInt(verjahr); EXCEPT ShowMessage('nix int'); END; |
smiegel - Di 07.10.03 13:14
Hallo,
wenn das Programm in der IDE läuft, erhälst Du den Fehler trotzdem. Damit dies nicht passiert, musst Du unter Tools->Debugger-Optionen, das Häckchen bei "Bei Delphi-Exceptions stoppen" auf der Registerseite "Sprach-Exceptions" wegnehmen.
Wenn Du die Exe außerhalb der IDE startest, tritt keine Exception auf.
MasterHiggins - Di 07.10.03 13:17
Ok, so geht's!
Danke Herr Retter!
MfG
MasterHiggins
smiegel - Di 07.10.03 13:24
Bitteschön...
maximus - Di 07.10.03 14:59
Vielleicht ist für dich auch die funktion...
Delphi-Quelltext
1:
| zahlxint:=StrToIntDef(zahlxstr,0); |
..interessant! Sie löst keine exception aus wenn die eingabe ungültig ist und setzt das ergebnis auf den wert des zweiten parameters.
MasterHiggins - Di 07.10.03 15:07
Ja schön!
Das ist ja genau die perfekte Funktion für meinen Zweck, da ich bis jetzt bei Exception den Integerwert "manuell" auf einen "Dummy-Wert" gesetzt habe!
Fetten Dank nochmal an euch beide, habt mir sehr geholfen!
Christian S. - Di 07.10.03 15:20
Hallo!
Der Vollständigkeit halber möchte ich hier noch einmal auf die Prozedur "Val" aufmerksam macht, die sich zu oben genanntem eignet, wenn es keinen Dummywert geben kann (weil z.B. alle Werte als "echte" Werte möglich sind). Ist auf jeden Fall eleganter, als eine Exception zu verwenden.
MfG
Peter
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!