Überprüfen, ob Variable einen Wert aus einer Menge von Werten hat
-
Hm, ok der Titel klingt etwas verwirren, aber ich suche eine Funktion mit der ich überprüfen kann, ob eine Variable einen Wert hat, der zu einer bestimmten Menge gehört.
Also so:
CString test; test.IsIn("Bla", "Blablah", "usw");Die Funktion gibt also "true" zurück, wenn test = "Bla" oder "Blablah" etc...
In Java gibt es sowas, dann wird es das in VC++ wohl auch geben.
Ca. 20 if-Abfragen zu schreiben ist mir einfach zu blöd...
-
Such einfach nach der Zeichenfolge... wenn se drin ist, bekommst de die Pos... ansonnsten ist se halt net drin

-
Hm, das is doch viel zu viel Aufwand.
Ich will überprüfen, ob die Eingabe OK ist. Es dürfen nur Zahlen und Bindestriche drin sein. Das Problem sind halt die Bindestriche, sonst könnte man einfach beim Editfeld "Number" auf true setzen...
-
Hallo,
kannst du nicht einfach die Eingabe überwachen, sobald ein Zeichen eingegeben
wird das nicht erlaubt ist Meldung ausgeben!?
lg
pixel
-
Hm, eigentlich will ich es erst am Ende überprüfen.
Also ich wollte ne For-Schleife machen und dann jeden Char überprüfen, ob es eine Zahl/Bindestrich ist...
-
Dann kann er aber troztdem ein "-" eingeben... nur würde dein char den dann net enthalten... das ist doch unpraktisch... überschreib ein CEdit Ctrl... dann WM_CHAR oder PreTranslateMessage abfangen... darin dann ausfiltern... fertig.
-
So, habs jetzt einfach so gelöst. Is zwar net so schön, aber es funktioniert:
bool CtestDlg::EingabePruefen(CString daten){ char* str = new char[daten.GetLength()+1]; strcpy( str, daten ); for(int i=0; i<daten.GetLength(); i++){ switch( str[i] ){ case '0': break; case '1': break; case '2': break; case '3': break; case '4': break; case '5': break; case '6': break; case '7': break; case '8': break; case '9': break; case '-': break; default: return false; } } return true; }
-
Als Einzeiler:
bool CtestDlg::EingabePruefen(CString const & daten){ return daten.SpanIncluding("0123456789-") == daten; }In einem Eingabedialog kommt es ja nicht so auf Performance an....
-
Tata... Genau das habe ich gesucht... Danke
