2012-02-02 69 views
0

我需要添加qbytearray quint16的firt位置,並在閱讀後:我該怎麼做呢?quint16上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 2012-02-02 19:15:54