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