Besser als
S := S + irgendwas;
ist dann halt
Delphi-Quellcode:
//Insert(irgendwas, S, Length(S) + 1);
Insert(irgendwas, S, MaxInt);
Denn wenn Insert, bzw. der Speichermanager den internen Speicher hier "inplace", also ohne verschieben/umkopieren vergrößern kann, dann wird nur noch der anzuhängende String da reinkopiert und fertig.
Zitat:
S := S1 + S2;
Ich hab allerdings nicht nachgeschaut, ob Concat2 (_LStrCat, bzw. _UStrCat) vielleicht prüft, ob S1 und S das Selbe sind und hier auch schon in dieser Art optimiert optimiert.