QDataStream, как рабоать с QDataStream |
Здравствуйте, гость ( Вход | Регистрация )
QDataStream, как рабоать с QDataStream |
flankerr |
28.7.2008, 11:54
Сообщение
#1
|
Активный участник Группа: Участник Сообщений: 356 Регистрация: 9.1.2008 Пользователь №: 65 Спасибо сказали: 2 раз(а) Репутация: 0 |
как рабоать с QDataStream ?
предположим хочу хзатолкнуть в стрим некий буфер: QDataStream stream; char tmp[256]; int size = stream.writeRawData(tmp,255); так вот значение size бредовое (очень большое) где грабли ? |
|
|
void* |
28.7.2008, 12:03
Сообщение
#2
|
Программист-самоучка Группа: Участник Сообщений: 429 Регистрация: 4.6.2008 Пользователь №: 193 Спасибо сказали: 28 раз(а) Репутация: 3 |
а ты указал QIODevice, в который будут записываться данные?
вот пример из ассистента:
Сообщение отредактировал void* - 28.7.2008, 12:03 |
|
|
flankerr |
28.7.2008, 12:10
Сообщение
#3
|
Активный участник Группа: Участник Сообщений: 356 Регистрация: 9.1.2008 Пользователь №: 65 Спасибо сказали: 2 раз(а) Репутация: 0 |
на счёт size он у меня оказался без знаоквым
т.е. возразает -1 на самом деле. запихивал в конструктор QByteArray не помогло.... |
|
|
Litkevich Yuriy |
28.7.2008, 12:13
Сообщение
#4
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Returns the number of bytes actually written, or -1 on error
|
|
|
flankerr |
28.7.2008, 12:18
Сообщение
#5
|
Активный участник Группа: Участник Сообщений: 356 Регистрация: 9.1.2008 Пользователь №: 65 Спасибо сказали: 2 раз(а) Репутация: 0 |
|
|
|
Litkevich Yuriy |
28.7.2008, 12:30
Сообщение
#6
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
помоему грабли как раз в том, что написал void* - устройство неуказано.
|
|
|
flankerr |
28.7.2008, 12:37
Сообщение
#7
|
Активный участник Группа: Участник Сообщений: 356 Регистрация: 9.1.2008 Пользователь №: 65 Спасибо сказали: 2 раз(а) Репутация: 0 |
т.е. просто как буффер использовать нельзя?
т.е. мне нужен некий буффер в конец которого я записываю произвольнео число байт а когда мне надо считываю происзвольное число байт из начала буффера. Просто не хотелось заново изобретать велосипед. |
|
|
void* |
28.7.2008, 12:42
Сообщение
#8
|
Программист-самоучка Группа: Участник Сообщений: 429 Регистрация: 4.6.2008 Пользователь №: 193 Спасибо сказали: 28 раз(а) Репутация: 3 |
для твоих целей как раз существует класс QBuffer
|
|
|
Litkevich Yuriy |
28.7.2008, 12:49
Сообщение
#9
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
flankerr |
28.7.2008, 15:51
Сообщение
#10
|
Активный участник Группа: Участник Сообщений: 356 Регистрация: 9.1.2008 Пользователь №: 65 Спасибо сказали: 2 раз(а) Репутация: 0 |
1.Тогда уж лучше использовать STL-ные очереди 2.Очередь хороша для ФИКСИРОВАННОГО размера читаемых\записываемых данных. А мне надо ПРОИЗВОЛЬНЫЕ. Т.е. в моём случае надо делать обвязку с циклами. ПРи таком раскладе лучше уж "изобрести велосипед" с простым char* и memcpy будет гораздо эффективнее. Сообщение отредактировал flankerr - 28.7.2008, 15:52 |
|
|
Текстовая версия | Сейчас: 1.2.2025, 18:13 |