CString Problem ?



  • Hallo,

    Wie kann ich Prüfen ob in einem CString eine Zahl enthalten ist oder ein text !!

    Also Wen ich CString string;
    string == "Hallo 15";

    Dann ist es ein String !!

    string = "Hallo";

    auch ein string

    wenn aber string = "1459";

    dann soll die funktion mir sagen ja es ist eine zahl !!

    Gibt es sowas schon ???

    Danke Coolsero



  • nur ne idee.
    vielleicht über den ascii-code ?😕
    jedes stringzeichen überprüfen, welchen ascii-wert es hat.



  • Versteh ich das richtig?

    Solange nur Zahlen vorkommen, soll er sagen es sind Zaheln ansonsten immer String ?



  • ich hab schonmal ne funktion isNaN(double dWert) benutzt, aber da musst du deinen string in einen double wert kriegen. wird eigentlich zum überprüfen von zahleneingaben oder so benutzt..

    viel spass:)



  • Das wäre eine Art es zu teste:

    CString string = "Hallo 134";       //String der geprüft werden soll
    AfxMessageBox(check(string));       //MessageBox ob Zahl oder String | check ist die Funktion
    .
    .
    //Das ist die Funktion
    CString CTestDlg::check(CString test)
    {
    	CString ret;
    	bool num = true;
    	int len = test.GetLength();
    	int x = 0;
    	while(x < len)      //Solang x kleiner ist wie der String
    	{
    		CString tmp = test.GetAt(x);  //Hier wird immer ein Zeichen weiter gegangen
    		if('0' <= tmp && tmp <= '9') //Hier wird geschaut ob das Zeichen ein Zahl ist
    		{
    	            //Wenn ja nix machen
    		}
    		else
    		{
    			num = false; //Hier wird makiert das Buchstaben drin vorkommen
                               break; //Dann kann er ja auch schon aufhören zu gucken :)
    		}
    		x++;
    	}
    	if(num == true) //Hier guckt er jetzt ob eine Makierung da ist oder nicht
    		return ret = "zahl";
    	else
    		return ret = "string";
    }
    

    So das wärs...



  • Hallo all,

    Danker erst mal für die Hilfe !!

    Hab mir jetzt ne Funktion geschreiben !! Funst super !!

    Gruß Coolsero



  • dann lass doch mal sehen 🙂 !!! *neugierigbin!*



  • bool CLibrarythread::checknummer(CString tnummer)
    {
    
    for( int i=0; i<=tnummer.GetLength()-1; i++)
    {
    
      TCHAR z = tnummer[i];
      if( isdigit(z))
      {
      }
      else
    	  return false;
    } 
    
    return true;
    }
    


  • ich sag dazu jetzt nix mehr 😉


Log in to reply