Cytat(Demoneos @ 21.08.2008, 12:48:08 )

W jaki najoptymalniejszy sposób można by było odczytać część pliku tekstowego? Załóżmy, że plik ma 5000 linijek. Ja chcę odczytać linijki od 1000 do 1200.
Mógłbym np. przesunąć wskaźnik na 1000 linię, a następnie odczytać w pętli (w każdej iteracji jedną linię) te 200 lini. Może są jakieś lepsze rozwiązania?
Jeżeli chodzi o tak małe pliki jak 5000 (powiedzmy do 1MB) linijek tekstu najprościej i wbrew pozorom najefektywniej będzie wczytać całość (z tego względu że odczyty z dysku i tak są buforowane wiec faktycznie mały plik i tak zostanie wczytany w całości do bufora systemu)
<?php
/**
* Funkcja zwraca wskazane linie tekstu
*
* @param string $file_name nazwa pliku
* @param int $lines_from numer pierwszej lini do wczytania (numerowane od 1)
* @param int $lines_to numer ostatniej lini
* @return array tablica indeksowana oryginalnymi numerami lini.
*/
function getLines($file_name, $lines_from, $lines_to) {
'/^.*$/m',
$lines,
PREG_SET_ORDER
);
for ($i = $lines_from-1; $i < $lines_to; $i++) {
$result[$i+1] = $lines[$i][0];
}
return $result;
}
?>