qbytearray上的quint16

时间:2012-02-02 16:22:36

标签: qt qbytearray

我需要在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));

但我不知道如何阅读

由于

1 个答案:

答案 0 :(得分:1)

好的,首先,datagram.begin()是没用的,因为它返回一个你根本没有分配的迭代器。如果您想在QByteArray的第一个位置插入一个数字,您可以执行以下操作:

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

要阅读它,最简单的方法是使用这样的QTextStream

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

另外,在发布之前先看看docs,因为如果你知道如何搜索,那么Qt非常简单且有用(而且不是那么难,相信我)。