switch-case Probleme
-
Beschäftige mich erst seit kurzem mit C++ und würde mich über jede Hilfe wirklich freuen.
Also ich habe ein Problem mit der switch Anweisung.
Ich komme über die for-Schleife nicht hinaus.
Über Haltepunkte ist mir aufgefallen, das er die case-Anweisungen nicht annimmt.
Hier mal kurz mein Code:for (x=1; x<=Edit2->Text.Length()-1;x++) { Tstr=Edit2->Text[x]; switch ( Tstr ) { case '1-9': Pruefsumme++;break; case ('+','-'):Pruefsumme++;break; default: ; } }Seht ihr einen größeren Fehler oder gibt es eine einfachere Möglichkeit, zu überprüfen ob in Edit2 nur Zahlen eingegeben sind?
-
Hallo,
so sollte es gehen:
Integer iAnz,iAscii,iPruef; AnsiString z1; // Vars definieren z1 =Edit2->Text; // Edit auslesen iAnz =z1.Length()-1; // Länge bestimmen iPruef=0; // Zähler init for(int x=1;x<=iAnz;x++) { // alle Zeichen iAscii=char Edit2->Text[x]; // in Ascii wandeln if((iAscii>48 && iAscii<58) || iAscii==43 || iAscii==45) { iPruef++; } // bei 1...9 + - =Zähler+1 } // ende for(i1Gruss Stefan
-
Hallo
waere es nicht besser gleich die Eingabe abzupruefen
Mfg
Klaus
-
Hallo, Klaus
klar, wäre mit KeyPress usw. einfacher. Aber scheinbar will er ja diese Zeichen zählen...

Gruss Stefan