quint16 на qbytearray - PullRequest
       26

quint16 на qbytearray

0 голосов
/ 02 февраля 2012

Мне нужно добавить в первую позицию 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 Ответ

1 голос
/ 02 февраля 2012

Хорошо, во-первых, datagram.begin() бесполезен, поскольку он возвращает итератор, который вы вообще не назначаете.Если вы хотите вставить число в первую позицию QByteArray, вы можете сделать что-то вроде:

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

Чтобы прочитать его, самый простой способ - использовать QTextStream, например:

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

Кроме того, взгляните на документы перед публикацией, потому что документы Qt действительно просты и полезны, если вы знаете, как искать (и это не так сложно, поверьте мне).

...