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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QDataStream->device()->at(int):????  (Прочитано 3723 раз)
west
Гость
« : Октябрь 01, 2007, 10:39 »

Возникла такая проблема: поток (QDataStream) связан c QByteArray, чтение приходится делать непоследовательное, т.е. переодически приходится "прыгать" по массиву данных. Как выставиться в нужную позицию чтения?
QDataStream->device()->at(int) нормально позиционирует по файлу (оно и понятно), а что делать при работе с  QByteArray?
Записан
Dendy
Гость
« Ответ #1 : Октябрь 01, 2007, 17:05 »

Может как то так.

Код:
QByteArray bytes;
...
QBuffer buffer( &bytes );
buffer.open( QIODevice::ReadOnly );
...
QDataStream ds( &buffer );
ds.seek( somePosition );
qint64 someValue;
ds >> someValue; // reading 8-bytes value from somePosition
Записан
west
Гость
« Ответ #2 : Октябрь 02, 2007, 10:59 »

Эт наверное в каком-то другом Qt, на 3.3.3   QDataStream::seek(int)  метода нет Грустный
Записан
Dendy
Гость
« Ответ #3 : Октябрь 02, 2007, 11:39 »

Упс. Имелось в виду:

Код:
ds.device()->seek( somePosition );
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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