• 4526阅读
  • 2回复

用qbytearrary来存储从2进制文件读出来的数据,怎么去验证读到数据了阿。 [复制链接]

上一主题 下一主题
离线jn200002
 

只看楼主 倒序阅读 楼主  发表于: 2010-05-14
int read_mmsind(/*const char *fname*/)
{
    QString path = "/3g/mmss/1273103871.130330.mms";

      QFile mmsFile(path);
      QByteArray readBack;  相当于一个 char* buf = memalloc(size())

      int r = 0;
      readBack.resize(mmsFile.size());
      
      if (!(mmsFile.open(QFile::ReadOnly)))
      {
          qDebug()<<"open failed!";
      }
      readBack = mmsFile.readAll();
/*int mmsnotification_decode(const void *msg, size_t size,const char *path)*/
      if (0 != mmsnotification_decode(readBack.data(), mmsFile.size(), path.toAscii().data())){
          r = 1;
      }
      mmsFile.close();
      return r;
}

编译都没问题,就是验证不了读到了多少数据。
离线paranoid
只看该作者 1楼 发表于: 2010-05-14
void DebugBuffer( const QByteArray& buf, int length )
{
    int len;
    if ( -1 == length )
        len    = buf.size();
    else
        len    = length;
        
    QString    string;
    QTextStream    stream(&string);
    stream.setFieldWidth(2);
    stream.setPadChar('0');
    
    for(int i = 0; i < len; i++) {
        stream << hex << (quint8)buf.at(i) << "  ";
    }
    qDebug() << string;
}
根据需要自己再修改,也可以将输出重定向到一个文件,使用qInstallMsgHandler
离线jn200002

只看该作者 2楼 发表于: 2010-05-17
多谢~!~!
快速回复
限100 字节
 
上一个 下一个