Russian Qt Forum

Qt => Общие вопросы => Тема начата: __Heaven__ от Сентябрь 17, 2014, 17:58



Название: [Решено] Редактирование файла
Отправлено: __Heaven__ от Сентябрь 17, 2014, 17:58
Привет, друзья!
Впервые столкнулся с задачей редактирования большого файла (over 100GB).
Проблема такая:
У меня имеется в виде шаблона 2 небольших файла, один представляет из себя начало результирующего файла, а содержимое второго находится где-то в середине результирующего.
Для создания своего файла я предпринимаю такие действия:
Копирую шаблон1 в папку назначения с соответствующим именем. Открываю этот файл. Пиши какие-то данные. Открываю шаблон2. Делаю readAll в поток записи результирующего файла. Снова пишу какие-то данные.
Теперь мне необходимо внести изменения в промежутке, соответствующем шаблону2.
На последнем этапе мне нужно отследить некоторые числа, пусть это будет min и max. Далее необходимо найти зарезервированное слово в том самом промежутке и вставить свои значения.
Как это сделать?

На данном этапе вижу вариант, как писать свои данные в файл tmp, потом изменять свой шаблон и склеивать получившееся. Но меня волнует, что будет необходимо читать tmp размером в 100Гб.
Как редактировать файл в серединке я не совсем понимаю.

Update
Решил записывать файл как есть с резервированием достаточного количества символов под каждое значение. Далее выполняю seek и пишу значение.
Неиспользуемое зарезервированное пространство заполняю нолями. То есть, если зарезервировано 4 символа, нужно записать туда число 3 - пишем 0003