String slashen
-
Middach,
ich habe einen String, den ich slachen möchte.
Heißt:
Wenn das letzte Zeichen des Strings kein \ ist, füge eins an, sonst nicht.Aus C:\ bleibt C:\
Aus C:\Test wird C:\Test\Wie überprüfe ich das?
Es sind LPWSTR-variablen.Danke.
-
Dazu mußt du zunächst das letzte Zeichen finden und mit \ vergleichen - wenn es was anderes ist, hängst du deinen Backslash an. Die nötigen Funktionen nennen sich wcslen() und wcscat() (wobei du für letztere genug Platz im drunterliegenden Zeichen-Array brauchst).
-
Das was du meinst sind Backslashes(\), keine Slashes(/)...
void AddBackSlash( CString& folderPath ) { if( folderPath.IsEmpty() ) return; LPCTSTR pStart = folderPath.GetString(); LPCTSTR pEnd = pStart + folderPath.GetLength(); LPCTSTR pLast = _tcsdec( pStart, pEnd ); if( _tcscmp( pLast, _T("\\") ) != 0 ) folderPath += _T("\\"); }
-
PathAddBackslash() macht genau das was Du brauchst.
Martin
-
Mmacher schrieb:
PathAddBackslash() macht genau das was Du brauchst.
Martin
macht aber probleme, wenn du zum beispiel chinesische chars im pfad hast... multibyte etc... das beachtet meine variante... 0xC5 ist n backslash, aber gleichzeitig auch das zweite byte von irgend sonem chinesischen zeichen.. und wenn das dann am ende steht, funzts nicht richtig...
-
Machine schrieb:
Mmacher schrieb:
PathAddBackslash() macht genau das was Du brauchst.
Martin
macht aber probleme, wenn du zum beispiel chinesische chars im pfad hast... multibyte etc... das beachtet meine variante... 0xC5 ist n backslash, aber gleichzeitig auch das zweite byte von irgend sonem chinesischen zeichen.. und wenn das dann am ende steht, funzts nicht richtig...
Kann ich nicht bestätigen.
Zudem sollte, wer für den chinesischen Markt produziert, Unicode verwenden.