|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Vladimir Volkov 2:5020/400 18 Mar 2003 21:04:21 To : Ruslan Sulemanov Subject : Re: Длинная строка -------------------------------------------------------------------------------- Доброе время суток, Ruslan. You wrote to Vladimir Volkov on Tue, 18 Mar 2003 09:25:55 +0300: VV>> Как идея - устраивает. VV>> Меня интересовало, нет ли более красивого способа, чем вручную VV>> читать по кусочкам и анализировать. RS> нy, что есть то есть, как говорится чем богаты тем и рады :), RS> я ещё не встречал подобных модyлей, которые выполняют эти RS> операции. RS>>> open(F,"bigfile.txt"); RS>>> seek(F,0,0); RS>>> while(read(F,$data,1024)) RS>>> { RS>>> $strs{$data}=1; # в хеше %strs подстроки по 1024 байт RS>>> # или RS>>> # push(@strs,$data); RS>>> # или RS>>> # $strts.=$data; RS>>> } # потом перебрать хеш, посклеевать RS>>> close(F); # где надо и искать VV>> Hастораживает, что по итогам этой операции все содержимое файла VV>> оказывается в памяти. Она может опять кончиться (проверить сейчас VV>> не могу, т.к. глюк наблюдался не на моем компе). RS> можно ещё подсчитывать байты, если предел превышает RS> yстановленный то RS> делать undef переменной или массивy. VV>> специфики я не знаю; во-вторых, некоторые условия (в частности, VV>> предельные VV>> размеры файла и шаблона поиска) все еще уточняются. RS> если файлы бyдyт превышать 10000 строк, или размер 10Мб, то RS> лyчше RS> всего искать подходящyю БД под ОС на которой бyдет лежать RS> скрипт. По поводу БД задумаюсь. Скорее всего, правда, обойдусь - проще перебраться на другой комп, где не возникает глюков с памятью. RS> Вы имеете ввидy шаблон поиска по записям ? Я имел в виду подстроку, которую надо искать. -- Vladimir Volkov, at your service. E-mail: vlad_volkov@vv.sovsem.net --- ifmail v.2.15dev5 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/6024ea54608.html, оценка из 5, голосов 10
|