phpbar.de logo

Mailinglisten-Archive

[php] fseek mit Zeilennummern?

[php] fseek mit Zeilennummern?

Bastian Haustein phpug at haustein.plan-i.de
Mit Sep 17 13:08:34 CEST 2003


Hallo Tobias!

> Kennt jemand einen Weg, wie ich in einem per fopen() geöffneten Textfile
> direkt zu einer bestimmten Zeilennummer springen kann (so nach dem Motto
> fseek(), allerdings mit Zeilennummer, statt Bytes)?

Aus dem Manual:

<man>
string fgets ( resource handle [, int length])


Gibt eine Zeile bis zu length -1 Bytes Länge zurück, welche aus der Datei
von der aktuellen Position des Dateizeigers handle aus ausgelesen wird. Die
Zeile endet an einem Zeilenumbruch (welcher im Rückgabewert enthalten ist),
EOF (Ende der Datei) oder bei length - 1 Bytes (je nachdem, was eher
auftritt). Ist keine Länge angegeben, wird diese auf 1k bzw. 1024 Bytes
gesetzt.



</man>



Also kannst Du recht einfach mit



for($i=1; $i<YourLine; $i++) fgets($filehandle);



zur richtige Zeile springen. Wichtig ist, dass die Schleife mit 1 zu zählen
beginnt, sonst läufst du eine Zeile zu weit. Ist alles auch ungetestet, hab
ich aber früher in einem c-Progrämmchen erfolgreich so gemacht.



Grüße aus Aachen!



Bastian




php::bar PHP Wiki   -   Listenarchive