0

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

しかし、私はそれを読むように知らない

ありがとう

4

1 に答える 1

1

さて、まず第一に、それdatagram.begin()はあなたがまったく割り当てていないイテレータを返すので役に立たない。の最初の位置に数字を挿入したい場合は、次のQByteArrayようにすることができます。

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

それを読むために、最も簡単な方法は次のQTextStreamように使用することです:

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

また、投稿する前にドキュメントを確認してください。Qtのドキュメントは、検索方法を知っていれば非常にシンプルで役立つためです(それほど難しくはありませんが、私を信じてください)。

于 2012-02-02T16:47:19.497 に答える