Wie gesagt, ich glaube nicht so richtig an den Cache.
Das kann ganz schön kompliziert werden.
Wie willst du denn verschiedene Aktionen an verschiedenen Stellen cachen und v.a. nachher in "einem Rutsch" ausführen?
Beispiel:
Code: Alles auswählen
FileStrings[12]:='test';
FileStrings.Delete(15)
FileStrings[10006]:='hallo';
FileStrings.Add('test');
FileStrings[FileStrings.Count-1]:='test test';
Da nützt dir der Cache imho nix, du musst trotzdem x-mal umkopieren.
Dein Beispiel oben lässt sich auch vom Benutzer der Klasse optimieren, ohne dass die Klasse selber cached:
Code: Alles auswählen
for i := 1 to 100 do begin
tempstringlist.add(inttostr(i));
end;
FileStrings[1]:=tempstringlist.text; //in "einem Rutsch" eingefügt.
Hilfsdateien gefallen mir auch nicht. Das geht auch mit
einer Datei.
Blockweise umkopieren. Eine Methode für Wachsen, eine für Schrumpfen.