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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Класс для смешанных данных  (Прочитано 2084 раз)
demiurg
Гость
« : Ноябрь 01, 2011, 22:43 »

Подскажите класс который можно использовать как буфер для приёма байтовых данных, часть из которых идёт как строка, а часть как байты. Использую QByteArray , но он 0x00 не воспринимает... и парсер "затыкается".
Записан
LisandreL
Птица говорун
*****
Offline Offline

Сообщений: 984


Надо улыбаться


Просмотр профиля
« Ответ #1 : Ноябрь 02, 2011, 01:23 »

Поясните, что вам от него нужно.
QByteArray вполне может содержать ноль.
В общем покажите участок кода, поясните, что от него хотели и что реально получается.
Записан
demiurg
Гость
« Ответ #2 : Ноябрь 02, 2011, 10:31 »

Код:
void EchoServer::onRead()
{
    QTcpSocket *client = qobject_cast<QTcpSocket*>(sender());
    QByteArray block = client->readAll();
    QString s = QTextCodec::codecForTr()->toUnicode(block.data());

Да тупал я, звиняюсь. Я ж в строку всё преобразую и там отбрасывает всё справа от нуля...

А такой эффект только от 0x00 будет или нестрочные символы тоже порежут s ?  Хочу валидацию данных сделать просто... Передаются только ascii , а вот как выявить и преобразовать некондиционные данные - вопрос конечно...
Записан
andrew.k
Гость
« Ответ #3 : Ноябрь 02, 2011, 11:07 »

как они у тебя туда попадают. так и извлекай их. у тебя же не случайный набор данных.
Записан
andrew.k
Гость
« Ответ #4 : Ноябрь 02, 2011, 11:10 »

а 0 - признак конца строки. странно, что тебя это удивляет.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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