CString::GetLength() gibt IMMER 0 zurück!



  • Hi zusammen also ich hab mal wieder was, was ich mir einfach nicht erklären kann ich will schauen ob mein Pfad mit \ endet oder nicht. Denn ich hab bei D:\ einen \ und bei D:\AV hab ich keinen. Jetzt wollte ich einfach schauen ob das letzte Zeichen ein \ ist oder nicht aber als Länge bekomm ich IMMER 0!
    Das hab ich versucht:

    int nLen = m_strFolderPath.GetLength();
    			//schauen ob Pfad mit \ endet
    			if(m_strFolderPath.GetAt(nLen-1) != '\\')
    				m_strFolderPath.Format("%s\\export.xls", m_strFolderPath);
    			else
    				m_strFolderPath.Format("%sexport.xls", m_strFolderPath);
    

    in m_strFolderPath steht ganz sicher der Pfad drin, beispielhalber die oben genannten.
    Was mach ich falsch???



  • MessageBox(m_strFolderPath);

    Was siehst du dann ?



  • hab es probiert und hab D:\AV angezeiget bekommen. 😞



  • Ungetestet:

    if(m_strFolderPath.Right(1) != "\\")
    


  • isabeau schrieb:

    Ungetestet:

    if(m_strFolderPath.Right(1) != "\\")
    

    leider auch nicht

    CString Test = m_strFolderPath.Right(1);
    			MessageBox(Test);
    

    gibt mir wieder den ganzen Pfad. Nur zum verständnis, heißt das nicht gib mir mal alle rechts vom ersten Zeichen?



  • Getestet:

    CString m_strFolderPath = "D:\\test\\huhu";
    CString Test = m_strFolderPath.Right(1); 
    MessageBox(Test);
    

    ...gibt mir exakt ein u in der MessageBox aus...

    [edit]
    CString::Right
    The number of characters to extract from this CString object.
    ...und zwar von rechts aus.
    [/edit]



  • Das ist wieder ein typischer Fehler der nur bei mir hier auftritt.
    Ich mach:

    m_strFolderPath = "D:\\test\\huhu"; 
    			CString Test = m_strFolderPath.Right(1); 
    			MessageBox(Test);
    

    Gibt er mir u aus.
    lass ich die hier erste Zeile weg gibt er mir D:\ aus! Woran kann das liegen bzw. was kann ich anders machen?



  • So gehts:

    CString Test = m_strFolderPath; 
    			MessageBox(Test.Right(1));
    

    Wieso das denn??


Anmelden zum Antworten