![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| 21:80 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 3.6.2004 Репутация: нет Всего: нет |
Ребята, задача такова:
Есть текстовый файлик ~12 метров. В нем храняться данные в виде: <имя_раздела1> ключ11=значение11 ключ12=значение12 <имя_раздела2> ключ21=значение21 ключ22=значение22 <имя_раздела3> ключ31=значение31 ключ32=значение32 ... ... ... Таких записей в файлике около миллиона. Имена разделов могут быть произвольные, но уникальные! Количество пар ключ-значение неограничено, но имя ключа уникально в данном разделе. Задача: необходимо проидексировать все имена разделов, чтобы знать в каком месте файла находится раздел, т.е. запомнить номера строк на которых находится заголовок раздела. После индексации необходимо совершать быстый переход к заголовку раздела. Важно, что при следующем открытии файлика не должна производится повторная индексация, т.е. её данные надо сохранять, например в другой файлик. Если кто даст ссылочку на пагез где можно четко почитать про индексацию - клёво, ну а если прямо на ПЕРЛАХ наваяете - ваще отпад! Заранее благодарен ]Ж-))) Это сообщение отредактировал(а) 21:80 - 24.9.2005, 16:16 |
|||
|
||||
| sharq |
|
|||
![]() Perl Liker ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 13.12.2004 Где: Ростов-на-Дону Репутация: 23 Всего: 28 |
21:80 для таких целей используют БД.
Это сообщение отредактировал(а) sharq - 24.9.2005, 19:20 -------------------- [color=gray]There's More Than One Way To Do It[/color] |
|||
|
||||
| 21:80 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 3.6.2004 Репутация: нет Всего: нет |
sharq я понимаю, дело только в том, что файлик есть, значит надо :-)) Да, кстати важное замечание количество пар ключ-значение в каждом разделе разное и никак с положением раздела не связано :-)) Думаем господа!
|
|||
|
||||
| sharq |
|
|||
![]() Perl Liker ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 13.12.2004 Где: Ростов-на-Дону Репутация: 23 Всего: 28 |
21:80 есть такая идея отпарсить файлик и привязать имени раздела номер строки, это соответствие хранить в хеше, который можно дампить Storable'ом. При внесение новой записи в файлик или при его изменение, редактировать хеш.
-------------------- [color=gray]There's More Than One Way To Do It[/color] |
|||
|
||||
| 21:80 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 3.6.2004 Репутация: нет Всего: нет |
sharq расскажи про Storable подробнее, пожалуйста. Че ето такое и как пользоваться. А парсер уже написан, только для "разчленения" такого гиганта (12 Мб если позабыл), на 4 пне 2Гб мозгов надо около 5 сек, причем проц под завязку загружен - проблема.
Жду твоего ответа с нетерпением :-)) |
|||
|
||||
| sharq |
|
|||
![]() Perl Liker ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 13.12.2004 Где: Ростов-на-Дону Репутация: 23 Всего: 28 |
21:80
Storable - позволяет дампить perl-структуры данных в файле и восстанавливать их, очень удобная вещь.) Например, ты работаешь с хешем, затем взял и сохранил его в сторабле, затем когда тебе нужно восстановил его или взял из него инфу или изменил его и переписал заново. Причем простым редактором содержимое сторабла не прочитаешь. Так что пользуйся. Добавлено @ 23:22 Если те нужен алгоритм твоей задачи, это уже совсем другой вопрос.) -------------------- [color=gray]There's More Than One Way To Do It[/color] |
|||
|
||||
![]()
|
| Правила форума "Perl" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |