isdigit erweitern



  • Hallo zusammen!

    Ich checke die Strings eines Eingabefeldes mit folgender Funktion darauf, ob nur Ziffern
    vorhanden sind

    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))
             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*
    Hellsgore

    EDIT: 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?
    

Anmelden zum Antworten