ist der inhalt der variable eine zahl? is_integer?!?
-
kann mir vielleicht jemand sagen wie ich einen variableninhalt auf eine zahl prüfe. also ich will eine operation nur dann ausführen wenn die variable eine zahl ist. also nicht wenn sie eine enthält. es gibt eine funktion namens is_integer in php angeblich auch in c++ aber komme nicht klar darauf. danke euch allen
-
Wie willst du denn einer Integer-Variable etwas anderes als eine Zahl zuweisen

-
Ich gehe mal davon aus, dass um die Konvertierung eines Strings in einen int geht:
AnsiString::ToIntDef(Defaultwert)
TryStrToInt() -> Wenn Du den BCB6 hast
-
ne habe den bcb5
also, ich habe eine variable
String var = "";
da wird irgendwas reingeschrieben: "text" oder "text2" oder "1234"
nun will ich die variable prüfen, ob da nun ein text drin steht oder eine zahl. dabei ist aber zu beachten das ich keinen text mit zahl haben will (zb. text2) ich will also nur zahlen prüfen.
-
Dann versuch mal die ToIntDef-Methode.
var.ToIntDef(-1);
Wenn sich kein int-Wert in dem String befindet wird -1 zurückgegeben. Statt der -1 kann jeder beliebige int-Wert verwendet werden. Nur sollte es ein Wert sein, der niemals vom User eingegeben wird.
Alternativ kannst Du jedes Zeichen des Strings mit IsNumeric überprüfen.
P.S. Ich weiß im Moment nicht, ob es mit String geht, wenn nicht nimm AnsiString.
-
Joe_M. schrieb:
Ich weiß im Moment nicht, ob es mit String geht, wenn nicht nimm AnsiString.
String ist nichts anderes als
[code] typedef AnsiString String; [/code]
-
wie fange ich diese -1 denn ab?
-
bist du dir sicher das es isnumeric gibt? ich hab nur ergebnisse für vb gefunden!
-
Sorry, IsNumeric gibt es nur bei Indy, respektive in SQL... Mein Fehler. In der Standard C Lib gibt es nur isalpha und isalnum...
Qoo schrieb:
wie fange ich diese -1 denn ab?
Abfangen mußt Du das nicht. Das ist der Wert, den die Variable erhält, wenn der String nicht in einen int-Wert konvertiert werden kann. Du solltest als Defaultwert einen Wert verwenden, der im Programm nicht vorkommen kann. Dann kannst Du nach dem Wandlungsversuch prüfen, ob deine Variable den Defaultwert hat. Wenn ja, befand sich im String kein 'Integerwert'.
-
danke, habs anders gemacht. hab die variable mit vinteger in int konvertiert und einfach den konvertierenden wert mit der variable verglichen. wenn es ein int ist bleibt der wert gleich, wenn nicht wird es beim konvertieren in irgendeinen langen int wert konvertiert. also false! auch ne idee
-
Was ist denn vinteger?
Und was soll die Aussage, irgendein langer Integerwert?? Bist Du sicher, dass dem immer so ist, oder hängt das von irgendwelchen zufälligen, beim Initialisieren im Speicher vorhandenen Werten ab?