Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.09.2015, 11:57   #1
polin11
Форумчанин
 
Регистрация: 07.06.2015
Сообщений: 164
По умолчанию замена 2 произвольных строк в огромном файле

Есть задача, поменять в огромном текстовом файле (несколько Гб) 2 произвольные строки.
Написал 2 программы: в основе 1 берем vector<string> записываем все строки,
затем меняем методом swap 2 строки, удаляем данные файла, записываем в файл
vector.
Основа 2 программы - читаем 2 строки, записываем данные в новый файл
в правильном порядке, удаляем исходный файл, переименовываем новый файл.
Проблема в том, что программа работает 5 мин, на файле 100 Мб, на файле 1ГБ, более часа.
Кто знает другой способ поменять 2 произвольные строки в огромном файле.
polin11 вне форума Ответить с цитированием
Старый 16.09.2015, 11:59   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,331
По умолчанию

Читать файл большими блоками. Потом блоки разбирать на строчки и сразу менять что надо и сбрасывать во второй файл. Так и vector не нужен.
waleri вне форума Ответить с цитированием
Старый 16.09.2015, 15:24   #3
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

можно смапировать файл
p51x вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск в таблице произвольных строк и подстановка значения из другой Zme Microsoft Office Excel 1 07.06.2014 10:35
Чтение произвольных строк из файла Ruslan9 Microsoft Office Word 5 05.03.2012 12:45
Замена строки в файле Bubel C# (си шарп) 1 17.11.2011 22:38
Замена строки в файле - C tools Помощь студентам 1 20.12.2010 01:39
Замена символа в файле Spandei Общие вопросы C/C++ 1 14.05.2010 08:21