Problem mit dem Ersetzen von Zeichen in CString
-
Ich möchte in einem CString ein paar Zeichen einfügen.
Dies mache ich mittelsCString inhalt= "12345 text mehr text"; CString inserter ="§§"; inhalt.Insert(5,inserter); //Ausgabe für inhalt = "12345§§ text mehr text"Nun soll zudem ein Ordnername, der zuvor ermittelt wurde, hinter
die §§-Zeichen angehängt werden.Mein Versuch:
CString inhalt= "12345 text mehr text"; CString inserter ="§§"; CString ordner = "irgendwo"; inhalt.Insert(5,inserter); inhalt.Insert(8,ordner); //Ausgabe für inhalt noch immer= "12345§§ text mehr text"Kann ich Insert nicht mehrfach dafür verwenden? Mit Append klappt es, aber
ich möchte ja nicht ans Ende des String schreiben...Dies klappt ebenfalls nicht (keine Änderung):
CString neuerwert = inserter; neuerwert += ordner; //nun also "§§irgendwo" Replace("§§",neuerwert);//es wird absolut keine Änderung vorgenommen...
-
Hat denn niemand eine Idee warum das so nicht funktioniert?

-
Vielleicht solltest Du
inhalt.Replace("§§",neuerwert);schreiben......

Und noch ein Tipp: wenn Du "rückwärts" einfügst, dann kannst Du immer denselben Index benutzen, also statt
inhalt.Insert(5,inserter); inhalt.Insert(8,ordner);das hier:
inhalt.Insert(5,ordner); inhalt.Insert(5,inserter);Insbesondere bei mehreren Einfügeoperationen verliert man da nicht den Überblick.