| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: Общие вопросы > Индексация данных |
| Автор: 21:80 24.9.2005, 16:14 |
| Ребята, задача такова: Есть текстовый файлик ~12 метров. В нем храняться данные в виде: <имя_раздела1> ключ11=значение11 ключ12=значение12 <имя_раздела2> ключ21=значение21 ключ22=значение22 <имя_раздела3> ключ31=значение31 ключ32=значение32 ... ... ... Таких записей в файлике около миллиона. Имена разделов могут быть произвольные, но уникальные! Количество пар ключ-значение неограничено, но имя ключа уникально в данном разделе. Задача: необходимо проидексировать все имена разделов, чтобы знать в каком месте файла находится раздел, т.е. запомнить номера строк на которых находится заголовок раздела. После индексации необходимо совершать быстый переход к заголовку раздела. Важно, что при следующем открытии файлика не должна производится повторная индексация, т.е. её данные надо сохранять, например в другой файлик. Если кто даст ссылочку на пагез где можно четко почитать про индексацию - клёво, ну а если прямо на ПЕРЛАХ наваяете - ваще отпад! Заранее благодарен ]Ж-))) |
| Автор: sharq 24.9.2005, 19:19 |
| 21:80 для таких целей используют БД. |
| Автор: 21:80 24.9.2005, 19:42 |
| sharq я понимаю, дело только в том, что файлик есть, значит надо :-)) Да, кстати важное замечание количество пар ключ-значение в каждом разделе разное и никак с положением раздела не связано :-)) Думаем господа! |
| Автор: sharq 25.9.2005, 01:43 |
| 21:80 есть такая идея отпарсить файлик и привязать имени раздела номер строки, это соответствие хранить в хеше, который можно дампить Storable'ом. При внесение новой записи в файлик или при его изменение, редактировать хеш. |
| Автор: 21:80 27.9.2005, 00:28 |
| sharq расскажи про Storable подробнее, пожалуйста. Че ето такое и как пользоваться. А парсер уже написан, только для "разчленения" такого гиганта (12 Мб если позабыл), на 4 пне 2Гб мозгов надо около 5 сек, причем проц под завязку загружен - проблема. Жду твоего ответа с нетерпением :-)) |
| Автор: sharq 27.9.2005, 23:21 | ||
21:80
Storable - позволяет дампить perl-структуры данных в файле и восстанавливать их, очень удобная вещь.) Например, ты работаешь с хешем, затем взял и сохранил его в сторабле, затем когда тебе нужно восстановил его или взял из него инфу или изменил его и переписал заново. Причем простым редактором содержимое сторабла не прочитаешь. Так что пользуйся. Добавлено @ 23:22 Если те нужен алгоритм твоей задачи, это уже совсем другой вопрос.) |