isdigit erweitern
-
Hallo zusammen!
Ich checke die Strings eines Eingabefeldes mit folgender Funktion darauf, ob nur Ziffern
vorhanden sindBOOL CIrgendwas::ZiffernCheck() { int r; CString prnr2; GetDlgItemText(IDC_EDIT_NR,prnr2); //String holen for(r=0; r<=prnr2.GetLength()-1; r++) //nacheinander jeden Charackter testen { TCHAR z = prnr2[r]; if(!isdigit(z)) return FALSE; //falls etwas anderes als eine Ziffer enthalten } //ist, gib FALSE zurück ansonsten TRUE return TRUE; }Ich möchte diese Funktion so erweitern, dass zusätzlich ein Punkt also '.' zugelassen wird.
Für Eure Mithilfe bedanke ich mich im Voraus schon mal.
MfG
RunSeb
-
Servus,
Nur Zahlen: Edit -> Eigenschaften -> Number -> True

Dann brauchste das nicht mehr *g*Wenn du Punkte zulassen willst, dann frage doch einfach das Zeichen "." Hex: 2E oder DEZ: 46 ab.
Du überprüfst bei dir schon jedes Zeichen. Dann kannst du auch noch dieses Zeichen überprüfen. Oder?

*winke*
HellsgoreEDIT: Ach komm ich bin nocht so gemein

BOOL CIrgendwas::ZiffernCheck() { int r; CString prnr2; GetDlgItemText(IDC_EDIT_NR,prnr2); //String holen for(r=0; r<=prnr2.GetLength()-1; r++) //nacheinander jeden Charackter testen { TCHAR z = prnr2[r]; if ((!isdigit(z)) && (z != 46)) return FALSE; //falls etwas anderes als eine Ziffer enthalten } //ist, gib FALSE zurück ansonsten TRUE return TRUE; }EDIT 3: So jetzt hammas...

-
Vielen Dank!!!
Das mit der Einstellung bei Eigenschaften konnt ich aus Sicherheitsgründen nicht nehmen.
Darum nutze ich diese Funktion überhaupt. So kontrolliere ich das selber, weißt!
Nochmal vielen Dank!!MfG
RunSeb
-
was sind sicherheitsgruende?
naja
naja was mir aufgefallen ist
for(r=0; r<=prnr2.GetLength()-1; r++) //kann man da nicht einfacher for(r=0; r < prnr2.GetLength(); r++) //nehmen?