Wie siehts mit StringReplace aus? Schonmal probiert wie das abschneidet?
StringReplace(Stringlist.Text,#13#10,'',[rfReplaceAll])
sLineBreak, sonst macht das Ding nur noch in Windows seine Arbeit. (Linux, Mac, Android ....)
Und es sollten ja nicht die Zeilenumbrüche raus, sondern nur Leerzeilen, also #13#10#13#10 (sLineBreak + sLineBreak),
aber wie "gut" das funktioniert hatte ich schon beschrieben.
In der Liste umkopieren oder in andere Liste umkopieren braucht kaum mehr Speicher.
Jedenfalls nicht für die Strings. (nur bissl für Objektinstanz und dann bissl mehr, für die Zeigerliste auf die Strings)
Vor dem Umkopieren der Liste kann man aber auch noch die Länge der Liste vorreservieren.
TStringList.Capacity
Und in der Liste umkopieren ..
TStringList.Exchange?
Zitat:
sl.Assign(slTmp);
Das kopiert aber auch nochmal die Liste. (notfalls könnte man aber auch einfach die beiden Objekte austauschen)