| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: Общие вопросы > Запись хэша в файл, после определенных манипуляций |
| Автор: dya 20.10.2007, 19:26 | ||||||
Есть файл с записями.
Мне необходима произвести изменения(запись) в файле.
Вариант как переписать полностью строку в файле отпадает. Переоценил свои возможности. Думаю еще нужна помощь в создание хэша, который приведён сверху. |
| Автор: KSURi 20.10.2007, 20:27 | ||
| perldoc SDBM_File Создание хэша:
|
| Автор: nitr 20.10.2007, 20:49 |
| dya, вы опишите "правильно" свой вопрос! Тогда помогут, тем более что "по-простому" задача проста и "на чтение" и "на запись". |
| Автор: dya 20.10.2007, 22:03 |
| надо считать фаил в хэш+массив, изменить определенное значения в хэши а потом не переписывая весь фаил, заменить только то значения где была замена в хэши(куда считывали). ну хз как еще вроде показать, сверху же примером. |
| Автор: nitr 21.10.2007, 01:39 | ||||
| Имхо любое решение для больших файлов будет "кушать" очень много ресурсов (а конкретнее память), т.к. всё загоняется в хеш. вот одно из них (воспользуюсь примером KSURi ;) ): script.pl
178100.txt
Добавлено через 2 минуты и 4 секунды а вот с модулями (с установками) *DB*_File вы замучиетесь. |
| Автор: dya 21.10.2007, 02:33 |
| Спс, есть еще варианты? Буду признателен. |
| Автор: korob2001 21.10.2007, 12:25 |
| Ну раз уж мы юзаем хеш, то может подумать над тем, что бы использовать DBM файл??? Тогда и память твоя будет свободна, так как при работе с DBM хеш связывается с файлом, а не читает его в память. |
| Автор: nitr 21.10.2007, 21:22 |
| dya, как сказали "ВСЕ": или "ресурсы" или заюзать модули *DB*_File |