Hier
FindFirst('Liste*.txt',faAnyFile,sr)
steht im ersten Parameter von FindFirst ein Platzhalter für den Dateinamen.
Es werden also in dem Beispiel alle Dateien geladen, deren name dem Muster [i]Liste
irgendwas.txt[(i] entsprechen. Wenn es da nur eine Datei gibt, wird auch nur die geladen. Hier sollten also alle Dateien mit den Namen Liste1.txt, Liste2.txt ... geladen werden.
Man könnte auch
FindFirst('*.*',faAnyFile,sr)
angeben, aber dann werden nicht nur Textdateien, sondern auch Exen, DLLs ... geladen, das wäre vermutlich eher suboptimal
Deine Namensvorstellungen von weiter oben (Liste(1).txt,Liste(2).txt ...) müssten mit der Routine eigentlich umsetzbar sein.
Die Routine fügt mit AddStrings die zuletzt gelesene Datei immer "hinten an". Der Inhalt von Items ist also nicht irgendwie sortiert.
Aber dem können wir abhelfen (wieder nur hingedadddelt und ungetestet):
Delphi-Quellcode:
var
sl : TStringList;
slAlles : TStringList;
sr : TSearchRec;
begin
sl := TStringList.Create;
slAlles := TStringList.Create;
Listbox1.Items.Clear;
// Statt Liste*.txt irgendeinen Namensplatzhalter nach eigenen Wünschen.
// Ggfls. auch noch 'nen Pfad mit angeben.
If FindFirst('Liste*.txt',faAnyFile,sr) = 0 then begin
Repeat
sl.LoadFromFile(sr.Name);
slAlles.AddStrings(sl);
until FindNext(sr) <> 0;
end;
FindClose(sr);
slAlles.Sort;
Listbox1.Items.AddStrings(slAlles);
slAlles.Free;
sl.Free;
end;
Wenn Du Besonderheiten bei der Sortierung haben möchtest, so schau Dir mal die Möglichkeiten von TStringList an. Da gibt es auch die Option, eine eigene Sortierroutine zu nutzen. Dazu dient die Methode CustomSort, Infos dazu findest Du z. B. hier:
TStringList CustomSort site:delphipraxis.net