Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Dmitriy Goldobin                     2:5020/400     14 Apr 2000  14:10:47
 To : All
 Subject : Re: Читать файл с конца.
 -------------------------------------------------------------------------------- 
 
 Hi!
 
 > Хочеться читать файл логов построчно с конца к началу.
 > (Hу не прочитывать же его _весь_ для поиска последнего.
 > сообщения об ошибке. Там мегов до 60 может быть,
 > когда отладка высокая)
 > Подскажите, как бы это сделать попроще ?
 > Ответы типа man ХХХ Принимаються с радостью :)
 
 Вот довольно приемлемый по скорости и памяти вариант:
 
 sub PrintReverse
 {
     open FILE, shift; binmode FILE; seek FILE, 0, 2;
     my $chunk = "";
     for( my $pos = tell(FILE) & ~2047; $pos >= 0; $pos -= 2048 ) {
         my $buf; seek FILE, $pos, 0; read FILE, $buf, 2048;
         @_ = split /^/, $buf.$chunk;
         $chunk = shift if $pos;
         print pop while( @_ );
         }
 }
 
 Bye.
 --- ifmail v.2.15dev4
  * Origin: Electronic Microsystems JSC (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: Читать файл с конца.   Dmitriy Goldobin   14 Apr 2000 14:10:47 
Архивное /ru.perl/219569a8bc7a7.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional