Russian Qt Forum

Qt => Общие вопросы => Тема начата: Flake от Март 18, 2008, 15:24



Название: Запись в файл другого файла.
Отправлено: 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();
}

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


Название: Re: Запись в файл другого файла.
Отправлено: pastor от Март 18, 2008, 15:28
А может лучше использовать для таких целей QFile::copy?


Название: Re: Запись в файл другого файла.
Отправлено: Flake от Март 18, 2008, 15:29
Нет, в это вся и фишка. В конец файла потом будут дописываться данные.


Название: Re: Запись в файл другого файла.
Отправлено: Вячеслав от Март 18, 2008, 16:25
Текстовый режим однако используеться скорее всего ;) - рушиться заголовок файла - явно укажи что QIODevice::Text нафиг не нужен ....
а вообще чего fc /b Extractor.exe Setup.exe кажет ?


Название: Re: Запись в файл другого файла.
Отправлено: Flake от Март 18, 2008, 16:35
Точно, использовался текстовый режим. Спасибо  :)