【问题标题】:Clean up QByteArray from \0从 \0 清理 QByteArray
【发布时间】:2014-07-25 09:27:04
【问题描述】:

在我的应用程序中,我使用QByteArray 将二进制数据从文件读取到具有固定大小的字节记录。实际上所有这些记录都是字符串。如果字符串大小小于记录大小,则其余字节用 \0 填充。有时记录也可以以 \0 开头。

例如,我需要做什么:

之前

\0 \0 \0 T h e \32 s t r i n g \0 \0 \0

之后

T h e \32 s t r i n g

所以我的问题 - 我怎样才能从所有 \0 中清除 QByteArray

【问题讨论】:

    标签: string qt bytearray


    【解决方案1】:

    我测试了这段代码,感谢QByteArray & QByteArray::replace(...) 函数,它似乎可以工作。

    QByteArray array;
    array[0] = '\0';
    array[1] = 'a';
    array[2] = '\0';
    array[3] = 'b';
    array[4] = '\0';
    
    qDebug() << "string:" << QString(array.toHex());
    array.replace('\0',"");
    
    qDebug() << "string:" << QString(array.toHex());
    

    输出:

    string: "0061006200" 
    string: "6162" 
    

    【讨论】:

      猜你喜欢
      • 2020-04-17
      • 2016-10-01
      • 1970-01-01
      • 2019-11-11
      • 1970-01-01
      • 2014-08-07
      • 2011-10-13
      • 2014-04-24
      • 2018-05-06
      相关资源
      最近更新 更多