Модераторы: korob2001, ginnie

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> разделение 
V
    Опции темы
amg
Дата 28.1.2009, 13:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1145
Регистрация: 3.8.2006
Где: Новосибирск

Репутация: 38
Всего: 50



Цитата(gcc @  28.1.2009,  12:57 Найти цитируемый пост)
подскажите как узнать сколько строк в файле?

$count += tr/\n/\n/ while sysread(FILE, $_, 2 ** 20);
PM MAIL   Вверх
ginnie
Дата 28.1.2009, 13:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1287
Регистрация: 6.1.2008
Где: Москва

Репутация: 38
Всего: 49



gcc, строка

Код

$tell = alphabetic( *BIG, 4 );


для Вашего файла должна быть

Код

$tell = alphabetic( *BIG, 'qq4' );


еще надо проверять, было ли точное совпадение ключа при помощи File::SortedSeek:was_exact(), т.к. функция alphabetic() может вернуть значение для ключа, следующего за искомым, если он отсутствует в файле.

 
gcc, для чего Вы привели код функции BinSearch(), если модуль File::SortedSeek делает то, что Вам нужно?


--------------------
Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг)
PM MAIL Skype Jabber   Вверх
gcc
Дата 28.1.2009, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 1
Всего: 17



Цитата(ginnie @ 28.1.2009,  13:17)
gcc, для чего Вы привели код функции BinSearch(), если модуль File::SortedSeek делает то, что Вам нужно?

сказали "написать функцию",  (функцию которую я тут привел,  я взял ее с другого форума, переделать не молучилось, на вопрос которы я задал тут никто не ответил) попробую этот модуль...

как я сделать поиск/бинарный поиск только с помощюь этого модуля

если делать так прмиерно:
Код

$find = '6';
$tell = alphabetic( *BIG, $find );
 @lines = get_between( *BIG, $tell , $tell+7 );


то этот модуль ругается на то что "значение" (второй столбик) маленькое 7 символов или криво выводит результат, ну если я так напишу get_between( *BIG, $tell , $tell+7 );, вот это знаничение $tell+7 должно быть точнее... но определить его я не могу


по другому я не понял, или Вы что-то другое имели ввиду?

Это сообщение отредактировал(а) gcc - 28.1.2009, 14:18
PM WWW ICQ Skype GTalk Jabber   Вверх
ginnie
Дата 28.1.2009, 15:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1287
Регистрация: 6.1.2008
Где: Москва

Репутация: 38
Всего: 49



gcc, опишите, что, по Вашему, должен делать фрагмент

Код

$find = '6';
$tell = alphabetic( *BIG, $find );
@lines = get_between( *BIG, $tell , $tell+7 );



--------------------
Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг)
PM MAIL Skype Jabber   Вверх
gcc
Дата 28.1.2009, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 1
Всего: 17



извените, я перепутал, случайно это написал..

метод get_between() по-моиму смотрит так как seek или нет?
PM WWW ICQ Skype GTalk Jabber   Вверх
ginnie
Дата 28.1.2009, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1287
Регистрация: 6.1.2008
Где: Москва

Репутация: 38
Всего: 49



gcc, 
Код

get_between( *BIG, $tell , $tell+7 );


что Вам должна вернуть?


--------------------
Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг)
PM MAIL Skype Jabber   Вверх
gcc
Дата 28.1.2009, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 1
Всего: 17



я написал функцию, только удалил ее, она возвращала как раз значение только фиксированной длинной...

использовать этот метод как массив я хотел, попробую пересмотрю еще раз

поиск по 20Мбайт файл работает вот так:
Код

 $tell = alphabetic( *BIG, 'qq4' );
 $line = <BIG>;


но это не бинарный поиск smile
PM WWW ICQ Skype GTalk Jabber   Вверх
gcc
Дата 28.1.2009, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 1
Всего: 17



ginnie, я сделаю короче просто через seek, 20Gb конечно делать не буду, процессор сильно грузится, а протестирую на меньшем размере, при 20Мбайт вроде бы работает...

в этом топике информация есть полезная, наверное еще кому-то будет пригодится

всем спасибо... 

Это сообщение отредактировал(а) gcc - 28.1.2009, 17:32
PM WWW ICQ Skype GTalk Jabber   Вверх
ginnie
Дата 28.1.2009, 23:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1287
Регистрация: 6.1.2008
Где: Москва

Репутация: 38
Всего: 49



Цитата(gcc @  28.1.2009,  15:39 Найти цитируемый пост)
но это не бинарный поиск

А какой? Бинарный и есть! Если мне не верите, смотрите описание модуля (последний абзац: ...This is the halving the difference or binary search method...).

Это сообщение отредактировал(а) ginnie - 28.1.2009, 23:06


--------------------
Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг)
PM MAIL Skype Jabber   Вверх
Страницы: (3) Все 1 2 [3] 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.4447 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.