Russian Qt Forum
Ноябрь 24, 2024, 17:25
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Общие вопросы
>
[Решено] Редактирование файла
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: [Решено] Редактирование файла (Прочитано 1585 раз)
__Heaven__
Джедай : наставник для всех
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
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...