我需要在qbytearray的firt16上添加一个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));
但我不知道如何阅读
由于
答案 0 :(得分:1)
好的,首先,datagram.begin()
是没用的,因为它返回一个你根本没有分配的迭代器。如果您想在QByteArray
的第一个位置插入一个数字,您可以执行以下操作:
datagram.insert(0, QString::number(pos++));
要阅读它,最简单的方法是使用这样的QTextStream
:
QTextStream str(datagram);
quint16 num;
str >> num;
另外,在发布之前先看看docs,因为如果你知道如何搜索,那么Qt非常简单且有用(而且不是那么难,相信我)。