quint16 на qbytearray

Мне нужно добавить в первую позицию Qbytearray Quint16 и после прочтения: Как я могу это сделать?

Я должен попробовать это:

quint16 pos = 0;
QFile file(m_pathFile);
if (file.open(QFile::ReadOnly))
{
    qDebug() << "el fichero existe";
    m_udpSocket->bind(m_port);
    QByteArray datagram;
    while (!file.atEnd())
    {
        datagram.begin();
        datagram.append(pos++);
        datagram = file.read(m_blockSize);
        qDebug() << "Sec" << datagram.at(0);
    }
 }

Большое вам спасибо

Я получил добавить с:

datagram.begin();
datagram.setNum(pos, 10);
datagram.append(file.read(m_blockSize));

но я не знаю как это прочитать

Спасибо

1 ответ

Решение

Хорошо, во-первых, это datagram.begin() бесполезен, поскольку возвращает итератор, который вы вообще не назначаете. Если вы хотите вставить номер в первой позиции QByteArray Вы можете сделать что-то вроде:

datagram.insert(0, QString::number(pos++));

Чтобы прочитать это, самый простой способ - это использовать QTextStream как это:

QTextStream str(datagram);
quint16 num;
str >> num;

Кроме того, взгляните на документы перед публикацией, потому что Qt действительно просты и полезны, если вы знаете, как искать (и это не так сложно, поверьте мне).

Другие вопросы по тегам