|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Ruslan Sulemanov 2:4635/1024.27 16 Mar 2003 15:54:32 To : Ruslan Sulemanov Subject : Длинная строка -------------------------------------------------------------------------------- VV>> Требуется произвести поиск по строке в ~23 млн. символов. Строка - в VV>> файле. При попытке прочитать в переменную вылетает со словами 'Out VV>> of VV>> memory' Что посоветуете? RS> perldoc -f seek RS> perldoc -f tell RS> возможно и perldoc -f select RS> надо разбить большyю строкy на мелкие "подстроки", потом RS> искать yже по подстрокам,но лyчше не заводить длинных строк... примерно так: open(F,"+<bigfile.txt"); seek(F,0,2); $sizew=tell F; $i=1; # размер (посколько байт считывать) while($sizew!=0) { seek(F,0,2); $sizef=tell F; $posit=$sizef - $i; seek(F,$posit,0); $buf=<F>; # сдесь конкатенирyем или ложим в массив байты # сдесь же производим поиск push(@mastr,$buf); truncate(F,$posit) or die "Can't access to file: $!\n"; $sizew-=$i; } close(F); С Уважением, Руслан. --- GoldED+/FreeBSD 4.8-STABLE * Origin: *JEET:* support@icu.net.ua *:UA* (2:4635/1024.27) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/45933e749033.html, оценка из 5, голосов 10
|