Problem mit dem Ersetzen von Zeichen in CString



  • Ich möchte in einem CString ein paar Zeichen einfügen.
    Dies mache ich mittels

    CString 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.


Anmelden zum Antworten