CString beschneiden
-
hallo,
ich einen CString mit diesem Inhalt : //SERVER_1/XYZ/ABC/text.txt der CString kann mal 50 Zeichen enthalten oder 10 er ist varieable
jetzt möchte ich alles außer text.txt in eine neue Variable packen wie geht das bitte mit Bsp:
-
nur fuer dich: eine von 500000 moeglichkeiten:
CString strPfadUndDatei = "//SERVER_1//XYZ//ABC//text.txt"; CString strTemp = strPfadUndDatei; CString strPfad = strPfadUndDatei.Right(8); strPfadUndDatei = strTemp;
Esco
und; never forget:
Bitte immer erst in die FAQ schauen. Die MSDN darf hier natürlich auch nicht fehlen.
somit haben sich auch alle: "wie mach' ich das jetzt, wenn der dateiname laenger ist..." fragen wohl geklaert.
achja: dies ist ein programmierforum und kein weltethikforum, beschneidungsthemen solltest du hier nicht diskutieren
-
Esco schrieb:
CString strPfadUndDatei = "//SERVER_1//XYZ//ABC//text.txt"; CString strTemp = strPfadUndDatei; CString strPfad = strPfadUndDatei.Right(8); strPfadUndDatei = strTemp;
Mal abgesehen davon, dass dein Code die gestellte Aufgabe nicht löst: Wozu die 2. und 4. Zeile?
@bumbumb2005:
PathRemoveFileSpec und PathAddBackslash sollten tun, was du brauchst. Allerdings arbeiten die Funktionen nicht direkt mit CStrings, du musst also entweder vorher den Inhalt ein einen TCHAR-Array kopieren oder mit CString::GetBuffer arbeiten.
-
MFK schrieb:
Esco schrieb:
CString strPfadUndDatei = "//SERVER_1//XYZ//ABC//text.txt"; CString strTemp = strPfadUndDatei; CString strPfad = strPfadUndDatei.Right(8); strPfadUndDatei = strTemp;
Mal abgesehen davon, dass dein Code die gestellte Aufgabe nicht löst: Wozu die 2. und 4. Zeile?
bumbumb2005 schrieb:
jetzt möchte ich alles außer text.txt in eine neue Variable packen[...]
wo ist das problem?!
Esco
-
MFK hat schon recht.
in strPfad steht nachher "text.txt" und Zeile 2 und 4 sind wirklich sinnlos, da strPfadUndDatei in Zeile 3 nicht verändert wird.Wenn ich sein Problem richtig verstanden habe, würde ich es so lösen:
CString strPfadUndDatei = "//SERVER_1/XYZ/ABC/text.txt"; CString strPfad= strPfadUndDatei.Left(strPfadUndDatei.ReverseFind('/')+1);
BTW: normale Slashes (/) müssen nicht verdoppelt werden in Strings, da sie keine Escapesequenz einleiten.
-
Bei ReverseFind würde ich nach ('//') suchen.
-
Quatsch.
Siehe auch:
dEUs schrieb:
normale Slashes (/) müssen nicht verdoppelt werden in Strings, da sie keine Escapesequenz einleiten.
-
sassyl schrieb:
Bei ReverseFind würde ich nach ('//') suchen.
Noch nicht verstanden warum es in einem CString 2 \ gibt?
CString test("c:\\\test\\hallo.txt")
-
wieso
"c:\\\"?
-
dEUs schrieb:
wieso
"c:\\\"?Das war eine Beispiel weil man es c:\\ordner schreiben kann.
Bevor also die Fragen kommen was bei 2 \\ passiert darum 4 \ .....Insbesondere wichtig bei Netzfreigaben.
-
Unix-Tom schrieb:
dEUs schrieb:
wieso
"c:\\\"?Das war eine Beispiel weil man es c:\\ordner schreiben kann.
Bevor also die Fragen kommen was bei 2 \\ passiert darum 4 \ .....Ahso
Unix-Tom schrieb:
Insbesondere wichtig bei Netzfreigaben.
Genau.