0

i need add on firt position of qbytearray a quint16 and after read it: How can i to do it?

I have try this:

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);
    }
 }

Thanks you very much

I got add with:

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

but i don't know as read it

Thanks

4

1 回答 1

1

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

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

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

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

另外,在发布之前先看一下文档,因为如果您知道如何搜索,Qt 文档非常简单且很有帮助(相信我,这并不难)。

于 2012-02-02T16:47:19.497 回答