also so schwer ist das doch garnicht?
(falls ich mich jetzt nicht vertan hab)
Delphi-Quellcode:
// Anzahl, i: Integer;
// Eintraege, SL: TStringList;
// Dateiname, S: String;
// Eintraege = deine Liste
// Dateiname = 'ereignisse' (natürlich inkl. Verzeichnis ;) )
// Anzahl = die gewünschten Zeilen (für alles einfach auf MaxInt setzen)
Eintraege.Clear;
i := -1;
While Eintraege.Count < Anzahl do Begin
If i < 0 Then S := '.csv'
Else If i < 10 Then S := '.cs' + IntToStr(i)
Else S := '.c' + IntToStr(i);
If not FileExists(Dateiname + S) Then Break;
SL.LoadFromFile(Dateiname + S);
SL.AddStrings(Eintraege);
Eintraege.Assign(SL);
Inc(i);
End;
While Eintraege.Count > Anzahl do Eintraege.Delete(0);
For i := 0 to Eintraege.Count div 2 - 1 do Begin
S := Eintraege[i];
Eintraege[i] := Eintraege[Eintraege.Count - i - 1];
Eintraege[Eintraege.Count - i - 1] := S;
End;
es ließe sich auch noch sehr leicht ein Offset einbauen, z.B. die vorletzen 15 Einträge (16-30)