Alex2ndr писал(а): ↑06.01.2010 00:24
Crazy писал(а): ↑05.01.2010 23:44
открываешь новый файл, записываешь те самые строчки, копируешь все остальное, закрываешь файл, переименовываешь файл.
Я рассматривал более общий случай - как записать не только в начало, но и в середину файла. Если файл небольшой, то предложенный мной способ проще и удобнее чем работа с файлами. А вот если файл здоровый, то Ваш способ будет лучше - особенно если реализовать чтение через генераторы и иные ленивые способы.
Чем проще и удобней?
Копирование файла состоит из 3х операторов: оператор цикла, оператор чтения, оператор записи.
В общем случае размер файла неизвестен. Алгоритм выглядит так:
Копирование элементов до места вставки;
Вставка новых элементов;
Копирование оставшихся элементов.
За списками лежит динамическое управление памятью, все вызовы выделения/освобождения проходят через ОС.
В самой ОС организована память странично или сегментно-странично.
В общем случае операция вставки в список занимает N/2 операций.
И смысл экономить пару строк кода, когда такое неэффективное использование ресурсов?