Mailinglisten-Archive |
Hallo Claudius, der Tipp von Roland scheint zu funktionieren, und da er erheblich einfacher ist, werde ich es erst mal damit versuchen. Wenn ich dabei Probleme bekomme, werde ich es mit deinem ersten Tipp versuchen - den verstehe ich und kann ihn sicher umsetzen. Gute Idee, bin ich irgendwie nicht drauf gekommen, das so zu machen. Danke!! Gruß Peter Am 25.10.2013 um 19:13 schrieb "Claudius C." <claudius at gmx.de>: >> 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 > > -- > ** Allgemeine deutschsprachige PHP-Liste: php at lists.phpbar.de ** > Informationen: http://www.phpbar.de > http://lists.phpbar.de/cgi-bin/mailman/listinfo/php -- Xing: http://www.xing.com/profile/Peter_Linzenkirchner Web: http://www.typo3-lisardo.de Facebook: http://tinyurl.com/lisardo-multimedia
php::bar PHP Wiki - Listenarchive