phpbar.de logo

Mailinglisten-Archive

[php] sehr große Textdatei sortieren

[php] sehr große Textdatei sortieren

Claudius C. claudius at gmx.de
Fr Okt 25 19:13:36 CEST 2013


> Das Umbauen ist einfach: zeilenweise einlesen, umbauen und wieder
> zeilenweise auslesen, kein Problem.  Aber wie sortiere ich eine so große
> Datei? Alles in ein Array einlesen kommt ja nicht in Frage, dafür ist die
> Datei zu groß.
> 
> Jemand eine Idee?

Mehrere Möglichkeiten:

1.
Du könntest 5MB-Abschnitte in einzelne Dateien sortieren und dann die
einzelnen Abschnitte aus den Dateien Zeilenweise Merge-Sort machen, d.h.
immer eine Zeile pro Datei einlesen und entscheiden welche Zeile du als
nächstes in die endgültige Zieldatei schreibst.

2.
Byteweise einlesen der großen Datei und nur das Behalten wonach du sortieren
mußt und gleichzeitig nen Index anlegen bei welchem Byte jede Zeile startet
und wie lange sie ist. Dann sortierst du anhand der gemerkten Daten und
baust dann die Zieldatei auf indem du in der Quelle mit fseek rumspringst,
ne Zeile liest, umbaust und rausschreibst.

- Claudius



Mehr Informationen über die Mailingliste php

php::bar PHP Wiki   -   Listenarchive