Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Andi

Frischling

  • »Andi« ist der Autor dieses Themas

Beiträge: 37

Beruf: Student

  • Private Nachricht senden

1

08.07.2005, 14:28

Pfad in einem CString verändern

Moin,

ich hab ein Problem mit meinem Programm in C++, MFC und CString. Ich lese über ein CFileDialog und GetPathName() einen Dateinamen mit Pfad aus und übergeb ihn in einen CString. Das hat ja die Form C:\abc\xyz.exe

Wenn ich diese Datei dann mit Winexec oder Createprocess ausführen will, geht das nicht. Man mus ja im Pfad anstatt \ ja \\ schreiben, also c:\\abc\\xyz.exe. Da hab ich mir gedacht ich benutze die replace Methode von CString und ersetze \ durch \\. Das geht aber nicht, weil \ innerhalb eines Strings oder Char als Escapesequenz ansieht und nicht als normales Zeichen.

Wie kann ich jetzt aus \ --> \\ machen?

Ich kann nicht direkt aus dem CFileDialog öffnen, weil ich nachträglich noch Übergabeparameter angebe.

Bitte helft mir!!

Andi

2

08.07.2005, 14:48

Du musst dazu an die replace-Funktion \\ und \\\\ angeben, um die Escape-Sequenzen für \ und \\ zu erhalten.

Andi

Frischling

  • »Andi« ist der Autor dieses Themas

Beiträge: 37

Beruf: Student

  • Private Nachricht senden

3

08.07.2005, 14:59

Du meinst: dateipfad.Replace('\\','\\\\'); ?

Das funktioniert nicht. Da passiert leider nix. Er kompiliert und linkt zwar, aber es wird immer noch nur C:\abc\xyz.exe angezeigt. Oder mach ich irgendwas anderes falsch?

Andi

Frischling

  • »Andi« ist der Autor dieses Themas

Beiträge: 37

Beruf: Student

  • Private Nachricht senden

4

08.07.2005, 15:07

hui, habs grad selber rausgekriegt.

Nicht die beste Variante, aber es funktioniert.

for(int i=0;i<Dateiname.GetLength();i++)
{
if(Dateiname.GetAt(i)=='\\')
{
Dateiname.Insert(i,'\\\\');
i++;
}
}

Danke für den Tip mit den mehreren \\\ :huhu:

Andi

Werbeanzeige