Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
Delphi 12 Athens
|
Re: Große Datei sortieren ohne komplett in den Speicher zu l
12. Mär 2009, 17:02
wenn es nicht unbedingt schnell sein muß, dann z.B. per TPartialTextfile
oder wenn die datei z.B. aufsteigend sortiert werden soll:
man könnte auch die Datei durchgehn
sich einen Index aller Zeilen anlegen (also wie diese beginnen)
loop:
dann die Datei nochmals duchgehn
sich ein array mit den "kleinsten" Zeilen anlegen (also mit deren Index + Inhalt)
dann zeile für zeile weitergehn (anhand dr Indexe) und jeweils in dem array "größere" durch "kleinere" Zeilen ersetzen
hat am Ende der Datei eine Hand voll der "kleinsten" Zeilen
schreibt diese Zeilen in eine neue Datei
und löscht deren Indexe aus der Liste
und noch geht man wieder zu loop und macht mit den restlichen Zeilen weiter
[add]
oder halt ala RadixSort einen Index (mit den Zeilenanfängen) anlegen, dann diesen sortieren und am ende eine neue Datei anhand der sortierten Indexliste erstellen.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
|