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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QDataStream - непонятно  (Прочитано 3178 раз)
irv
Гость
« : Октябрь 06, 2010, 14:48 »

Мне не совсем понятно поведение приведенного ниже кода:

Код:
QByteArray ba;
ba.append( 1342345 );
ba.append( "string" );
ba.append( 14.2345 );

QFile file ("filename.bin");
           if (file.open(QIODevice::WriteOnly )){
              QDataStream stream(&file);
              stream.setVersion(QDataStream::QT_4_6);
              stream << ba;
             }
Почему первые три байта забиваются нулями?


Записан
xokc
Птица говорун
*****
Offline Offline

Сообщений: 976



Просмотр профиля
« Ответ #1 : Октябрь 06, 2010, 16:19 »

Если читать внимательно http://doc.trolltech.com/4.7/qdatastream.html, то выяснится, что "A data stream is a binary stream of encoded information which is 100% independent of the host computer's operating system, CPU or byte order". Т.е. теоретически, там может сколько угодно байт в каком-угодно месте быть забито чем угодно. Если нужно записать ровно, то ожидается позже увидеть в файле, то стоит прочесть там же раздел "Reading and writing raw binary data". Т.е. вместо append пользоваться readRawData()/writeRawData().
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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