我现在想将comtrade数据文件由binary格式转化为ascii格式,用QDatastream读入binary数据文件,请问用QDatastream读入二进制格式有什么规格吗 为什么我读过来的不对呢
这是我的代码:
QFile file_dat(dat_name);
QDataStream in_dat_binary(&file_dat);
in_dat_binary.setVersion(QDataStream::Qt_4_3);
quint32 sample_num;
qint32 timemult_num;
qint16 achnum_value;
qint16 dchnum_value;
int iEndPoint=endPoint->value();
for (int ii=0;ii<iEndPoint;++ii)
{
in_dat_binary>>sample_num>>timemult_num;
tableWidget_dat->setItem(ii,0,new QTableWidgetItem(QString::number(sample_num)));
tableWidget_dat->setItem(ii,1,new QTableWidgetItem(QString::number(timemult_num)));
for (int jj=0;jj<iAchNum;++jj)
{
in_dat_binary>>achnum_value;
tableWidget_dat->setItem(ii,jj+2,new QTableWidgetItem(QString::number(achnum_value)));
}
for (int kk=0;kk<iBytesNum;++kk)
{
in_dat_binary>>dchnum_value;
////////////////////////////////////
}
------解决方案--------------------
请看完我的回复,谢谢。
第二:根据需要设置字节序
in_dat_binary.setByteOrder(QDataStream::LittleEndian 或者 QDataStream::BigEndian
你的二进制文件的前四个字节是什么?是:0x01 0x00 0x00 0x00 吗?
如果是请设置:in_dat_binary.setByteOrder(QDataStream::LittleEndian);