Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > [QT] Запись в файл другого файла.


Автор: FlakeMusic 18.3.2008, 15:35
Нужно открыть исходный файл, прочитать из него данные и записать в новый. Получится что-то вроде копирования. QFile::copy использовать не предлагать, т.к. в конец файла потом будут дописываться данные.

Вот код:

Код

        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();
    }


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

Автор: JackYF 18.3.2008, 20:01
Цитата(FlakeMusic @  18.3.2008,  14:35 Найти цитируемый пост)
Получится что-то вроде копирования.

Омф. Это и есть копирование.

Цитата(FlakeMusic @  18.3.2008,  14:35 Найти цитируемый пост)
т.к. в конец файла потом будут дописываться данные.

Это типа причина? А сделать QFile::copy, а потом открыть получившийся файл в режиме append и дописывать данные не судьба?

Автор: Любитель 23.3.2008, 22:23
Цитата(FlakeMusic @  18.3.2008,  15:35 Найти цитируемый пост)
 размеры совпадают

А файлы? smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)