Leerzeilen aus CString entfernen?



  • Hallo zusammen,
    ich möchte aus einem großen CString, den ich in eine Datei schreiben möchte
    zuvor gerne alle Leerzeilen entfernen. Ich habe da zunächst an Remove('\n')
    gedacht, aber das zerstört mir dann auch die Umbrüche im normalen Textfluss.

    Muss ich zwingend nochmal den schon im Speicher befindlichen CString neu
    zeilenweise einlesen um jede Zeile darauf zu prüfen, ob sie leer ist 😕

    Vielleicht denke ich auch viel zu kompliziert.



  • In einem CString gibts ja keine Leerzeilen im eigentlichen Sinne. ist ja nur eine Aneinanderreihung von Zeichen. Wie sieht denn dein CString jetzt aus und wie willst du, dass er aussieht?



  • Leerzeilen sind direkt aufeinanderfolgende Zeilenumbrüche. Ersetz mehrfache Zeilenumbrüche durch einfache.



  • Also mein CString sieht in etwa so aus:

    Max Muster
    12345
    StatischerText123
    Waldweg 15

    Ich lasse dann ein Replace drüber gehen:
    meinString.Replace("StatischerText123","");

    Dann ist die Zeile leer, soll aber eigentlich gar nicht mehr vorhanden sein:

    Max Muster
    12345

    Waldweg 15

    Bei .Remove habe ich gesehen, kann man offenbar nur einen character entfernen?!



  • Wie schon MFK geschrieben hat, solltest du einfach zwei aufeinander folgende Zeileumbrüche durch einen ersetzen.
    Also

    Replace(_T("\n\n"), _T("\n"))
    


  • Wenn du sowieso schon den Inhalt einer Zeile löschst, kannst du das anschließende '\n' ja gleich in derselben Anweisung mit löschen.



  • _matze schrieb:

    Wenn du sowieso schon den Inhalt einer Zeile löschst, kannst du das anschließende '\n' ja gleich in derselben Anweisung mit löschen.

    Habe es genau so gelöst 🙂


Anmelden zum Antworten