Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - "xd" ist ein gültiger Integerwert....
soisseteben - So 22.10.06 11:50
Titel: "xd" ist ein gültiger Integerwert....
Hallo erstmal,
Ich prüfe mit folgender Methode, ob ein eingegebener Wert eine Ganzzahl darstellt:
Delphi-Quelltext
1: 2: 3:
| try StrToInt(Text); except on EConvertError do .... |
Dabei ergab sich das Problem, das Ausdrücke wie "xd" (=13) oder "x3" (=3) korrekt konvertiert werden können. "x" hingegen versteht StrToInt nicht als gültigen Integerwert...
Wie kann ich dieses Problem aus dem Weg räumen?
Danke schonmal.
Gausi - So 22.10.06 11:58
StrToInt interpretiert Zeichenfolgen, die mit einem x beginnen, als Zahl in der Hexadezimaldarstellung. Und D(Hex) ist nunmal 13(Dec).
(btw: Warum verwechseln Informatiker ständig Halloween mit Weihnachten? - Weil 31 Okt = 25 Dec ....)
Wenn du nur die Dezimaldarstellung erlauben willst, musst du wohl was eigenes basteln:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| function isDezimalZahl(aString: String): boolean; var i: integer; begin if aString = '' then result := false else begin result := true; for i := 1 to length(aString) do if not aString[i] in [0..9] then begin result := false; break; end; end; end; |
mkinzler - So 22.10.06 12:01
Kleine Gegenfrage, was soll den x als Integer darstellen? 10 (röm.)?
soisseteben - So 22.10.06 12:05
Danke! :D
soisseteben - So 22.10.06 12:16
Ähm, ich war wohl etwas vorschnell: bei dieser Zeile kommt die Fehlermeldung "Operator auf diesen Oparantentyp nicht anwendbar":
Delphi-Quelltext
1:
| if not aString[i] in [0..9] then |
Also beim "in". Was kann man da machen :(
Lannes - So 22.10.06 12:23
Hallo,
Delphi-Quelltext
1:
| if not (aString[i] in ['0'..'9']) then |
Gausi - So 22.10.06 12:24
oops - Probier mal if not aString[i] in ['0'..'9']
soisseteben - So 22.10.06 12:42
EDIT: Lannes hatte recht - die Klammern müssen noch rum.
Danke!
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 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!