Russian Qt Forum
Ноябрь 24, 2024, 15:12 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: [Решено] Редактирование файла  (Прочитано 1584 раз)
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« : Сентябрь 17, 2014, 17:58 »

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

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

Update
Решил записывать файл как есть с резервированием достаточного количества символов под каждое значение. Далее выполняю seek и пишу значение.
Неиспользуемое зарезервированное пространство заполняю нолями. То есть, если зарезервировано 4 символа, нужно записать туда число 3 - пишем 0003
« Последнее редактирование: Сентябрь 18, 2014, 11:04 от __Heaven__ » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.044 секунд. Запросов: 22.