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 действительно просты и полезны, если вы знаете, как искать (и это не так сложно, поверьте мне).