Moin!
'ǝɯɐu$ ıɥ
der Hintergrund ist, ich möchte einen Teil aus einer Datei auslesen und in eine andere Datei speichern. Das was ich speichern möchte, steht ungefähr von Zeile 100 bis 150. Da ist es natürlich ganz schön umständlich, jede Zeile in ein extra array zu schreiben..
Wieso extra ein Array pro Zeile? Du willst dich mit file(); beschäftigen.
Und er will sich mit der Frage beschäftigen woran er die benötigten Zeilen erkennt.
Ferner wissen wir nichts über die Umstände. Möglicherweise, insbesondere bei großen Datenmengen, wäre der Einsatz von grep, head, tail, tr, sed, cut,sort, awk vorteilhaft:
Zeilen 150-200 einer Datei:
a) in der (Unix/Linux) Shell:
~> head -n 200 datei.txt | tail -n 50 > datei.neu.txt
Es werden die ersten 200 Zeilen ausgelesen, durch das Rohr zum nächsten Filter gejagt der dann nur die letzten 50 übrig lässt.
b) ausgehend von PHP auf einem Unix-System, welches System-Befehle erlaubt:
system ("head -n 200 /dir/datei.txt | tail -n 50 > /dir/datei.neu.txt");
Alle Zeilen mit einem Merkmal:
a) in der Shell:
~> grep "Suchfilter" datei.txt > datei.neu.txt
b) ausgehend von PHP auf einem Unix-System, welches System-Befehle erlaubt:
system ("grep "Suchfilter" datei.txt > datei.neu.txt");
Hinweise:
Auf gängigen Linux-Systemen versteht grep auch reguläre Ausdrücke.
Wird es ganz wild kann auch awk, sort, cut benutzt werden.
awk (advanced word kompressor) kann man sogar als "eine Art scriptgesteuertes Excel am Prompt für CSV-Dateien" gebrauchen. Ja: awk kann auch rechnen.
Die Beschäftigung mit diesem Zeug ist für jeden, der Daten in textform vorliegen hat und verarbeiten soll, absolut lohnend.
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix