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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Запись на диск  (Прочитано 3234 раз)
Antinachai
Гость
« : Ноябрь 19, 2012, 22:59 »

Привет всем.
Подскажите пожалуйста какой класс использовать?

Требуется записать двоичные данные на диск, когда это потребуется.
Таким функционалом обладаем TMemoryStream в Delphi.
И я не знаю какой класс использовать.
QDataStream - увы пишет сразу либо я некорректно использую его.

примерно нужен такой код

например по нажатию кнопки создаем:
ИмяКласса memoryStream = new ИмяКласса;

по нажатию второй кнопки:
memoryStream.Write((char*)buffer, length);

по нажатию третьей кнопки:
memoryStream.writeTofile("example.data");

Подскажите возможно ли такое? Если да, то как сделать?
Записан
mutineer
Гость
« Ответ #1 : Ноябрь 19, 2012, 23:01 »

По второй кнопке пиши в QByteArray, а по третьей записывай его в файл
Записан
Antinachai
Гость
« Ответ #2 : Ноябрь 19, 2012, 23:06 »

а если по второй кнопке надо несколько раз записать?
тоесть с сети приходят данные,  и если пользователь например прервет получение данных, то нет смысла записывать в файл недокачанные данные.
Записан
mutineer
Гость
« Ответ #3 : Ноябрь 19, 2012, 23:53 »

Не понял вопроса
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #4 : Ноябрь 20, 2012, 00:14 »

дописывать — QByteArray::append() или +=
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Antinachai
Гость
« Ответ #5 : Ноябрь 20, 2012, 01:51 »

Спасибо. вопрос решен.

Код:
QByteArray buffer;

if (dataBuffer)
    {
        buffer.append((char*)dataBuffer, length);
    }

       QFile bufferFile;
        bufferFile.setFileName(cacheDir + externAid + ".mp3");
        bufferFile.open(QFile::WriteOnly);
   
        bufferFile.write(buffer, buffer.size());

        bufferFile.flush();
        bufferFile.close();
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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