Mailinglisten-Archive |
> 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
php::bar PHP Wiki - Listenarchive