CString zuschneiden...



  • hallo,
    ich meine funktion liefert mir einen CString a.
    MessageBox(a);

    MessageBox leifert mir..

    *nameschlagmichtot

    a muss weiterverarbeitet werden ABER OHNE DEN ->*<-
    Wie schneide ich den *ab?



  • Schau dir vielleicht mal die CString::Remove() Funktion an.



  • danke,
    hehehe jein 🙂

    CString str("This is a test.");
    int n = str.Remove('t'); //<- wenn da ein * ist stürtzt visual c++ 2003 ab,siehe unten
    ASSERT(n == 2);
    ASSERT(str == "This is a es.");
    return(str);
    
    Debug Assertion Failed
    


  • Du hast die Asserts von der MSDN Seiten übernommen. Wenn du nun statt dem 't' ein '*' übergibst, passen die ja nicht mehr. Die müssen angepasst werden!



  • thx,
    hier gehts, aber nicht in meinem Projekt 😞

    CString test = "abcdefghij";
    
    test.Delete(0, 1);
    MessageBox(test);
    

    mein Projektschnipsel...

    ......
    HANDLE fHandle;
    WIN32_FIND_DATA wfd;
    fHandle=FindFirstFile(untero,&wfd);
    
     //MessageBox(wfd.cFileName);
    do
    {
    if ( (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) && strcmp(wfd.cFileName,".")!=0 && strcmp(wfd.cFileName,"..")!=0 )
        {       
    char verz[80];
        strcpy(verz, wfd.cFileName);
        strcat(verz,"\\");
    
    CString xc = verz;
    xc.Delete(0, 1);
    
        return(xc); 
    ......
    

    mein unterverzeichnis heist xy und erzeigt mir *y\\ und der stern ist immernoch da?!
    Ich will mein nur unterzeichnis auch durchsuchen. 🙂


Anmelden zum Antworten