|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : PROext 2:5020/400 09 Nov 2001 10:45:06 To : Artem Chuprina Subject : Re: N lines from end -------------------------------------------------------------------------------- > P> > > > Как лучше всего прочитать N последних строк из файла? > P> > > > Читать файл в массив не годится из-за большого размера файла. > P> > > > P> > > Читать построчно, заносить значения в массив размером N со здвигом > P> > (затирать > P> > > предыдущие, добавлять новые). > P> > > P> > А перед этим посчитать строки в файле ? > > P> Зачем считать? > P> Считываю строчку, предыдущие сдвигаю (на примере N = 4): > P> $arr[1] = $arr[2]; > P> $arr[2] = $arr[3]; > P> $arr[3] = $arr[4]; > P> $arr[4] = $stroka; > > Я фигею, дорогая редакция... Ты Кнута давно не читал? При каждой строке весь > массив переписывать - это ж с дуба рухнуть надо... > > $arr[$current_index++] = $stroka; > $current_index%=$N; Я показал человеку общий алгоритм реализации (принцып, если так можно сказать). А судя из того, что и как человек спрашивает, то, что ты написал, он вряд ли что поймет :) Конечно же, если бы мне нужна была такая реализация (N последних строк), то я бы ее писал именно так, как ты сказал. --- Best regards, InSAn http://www.PROext.com --- ifmail v.2.15dev5 * Origin: MTU-Intel ISP (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/910486c7addb.html, оценка из 5, голосов 10
|