2012-02-02 6 views
0

Мне нужно добавить на firt позицию qbytearray a quint16 и после прочтения: Как я могу это сделать?quint16 on qbytearray

меня попробовать это:

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

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

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

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

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

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

+0

Большое спасибо. – Jjreina