| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: Общие вопросы > Удаление строк из файла |
| Автор: Семён Розовых 29.12.2002, 01:39 |
| Подскажите эффективный способ удаления строк из тхт файла. Я пробывал примерно такое : 1) Считать файл в массив. 2) Создать цикл, перебирающий элементы массива 3) Каждый элемент записывается в файл, стирая при этом старые записи 4) Не записывается лишь в том случае, если элемент == тому который надо удалить. Но на мой взгляд это не эффективно. Подскажите пожалуйста более эффективный способ. |
| Автор: NightGoblin 1.1.2003, 14:41 |
| можно так: 1) открывается файл на чтение/запись. 2) строки пропускаются до той строки, которую надо удалить. 3) считывается все, что после строки 4) указатель позиции устанавливается на начало удаляемой строки 5) записывается считанный конец файла 6) длина файла обрезается до текущей позиции |
| Автор: Powerhead 29.1.2003, 04:33 | ||
Поместить строки в массив @str, в массив @del - строки, которые нужно удалить.
Теперь из массива @str исключены все совпадения с @del. Можешь писать его в файл.. Если известны номера строк, которые надо удалить, всё проще. На форуме была такая тема.. |
| Автор: Guest 1.2.2003, 17:39 |
| а если файл размером раза этак в три больше всей доступной памяти, включая виртуальную? |
| Автор: ixor 20.3.2003, 00:34 |
| Боюсь показаться непрофессиональным, но попробуйте взять готовое...:-) В свое время мне ставили задачу редактирования текстовой БД на ~150 Mb в риалтайм (ну или почти) Сами понимаете, линейный поиск только, сколько времени займет... хорошим людям удалось найти профессиональную реализацию, (разработка одного из Американских Университетов)... Если не получится найти, единственное решение, о котором я слышал, создание индексированной текстовой БД... |