2012-02-02 1 views
0

qbytearray에 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의 첫 번째 위치에 숫자를 삽입하려면 : 또한

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

: 그것을 읽으려면

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

을, 가장 간단한 방법은이 같은 QTextStream를 사용하는 것입니다 , 게시하기 전에 docs을 살펴보십시오. Qt는 검색하는 방법을 알고 있으면 정말 간단하고 도움이되기 때문에 (그리 어렵지 않고 신뢰합니다).

+0

대단히 감사합니다. – Jjreina