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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Запись в файл другого файла.  (Прочитано 3918 раз)
Flake
Гость
« : Март 18, 2008, 15:24 »

Нужно открыть исходный файл, прочитать из него данные и записать в новый. Получится что-то вроде копирования.

Вот код:
Код:
        QString strExtractorFile;
strExtractorFile = qApp->applicationDirPath()+"/Extractor.exe";

QString strSFXFile;
strSFXFile = qApp->applicationDirPath()+"/Setup.exe";

QFile fileExtractor(strExtractorFile);
QFile fileSFX(strSFXFile);

if (!fileSFX.open(QIODevice::WriteOnly))
{
// Заглушка на случай ошибки.
} else {
fileSFX.write(fileExtractor.read(fileExtractor.bytesAvailable()), fileExtractor.bytesAvailable());
fileSFX.close();
}

Записывает новый файл, размеры совпадают. Но файл не запускается. Говорит программе не хватает памяти.
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #1 : Март 18, 2008, 15:28 »

А может лучше использовать для таких целей QFile::copy?
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Flake
Гость
« Ответ #2 : Март 18, 2008, 15:29 »

Нет, в это вся и фишка. В конец файла потом будут дописываться данные.
Записан
Вячеслав
Гость
« Ответ #3 : Март 18, 2008, 16:25 »

Текстовый режим однако используеться скорее всего Подмигивающий - рушиться заголовок файла - явно укажи что QIODevice::Text нафиг не нужен ....
а вообще чего fc /b Extractor.exe Setup.exe кажет ?
Записан
Flake
Гость
« Ответ #4 : Март 18, 2008, 16:35 »

Точно, использовался текстовый режим. Спасибо  Улыбающийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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