【问题标题】:QByteArray remove first 4 linesQByteArray 删除前 4 行
【发布时间】:2013-07-03 14:26:07
【问题描述】:

我有 QByteArray,需要删除前 4 行。例如,我可以使用正则表达式来做到这一点,但这是更简单的方法吗?

UPD:我的 QByteArray 中的第一行(超过 4 行)是文本,最后是 '\n'。

【问题讨论】:

  • 前 4 行是什么?什么是行尾的标志?
  • @DmitrySazonov 第一行是文本,最后一行是“\n”
  • 好的,Robert Franke 提供了可能的答案。

标签: c++ qt qbytearray


【解决方案1】:

如何搜索 '\n' 的第四次出现(使用 int QByteArray::indexOf (char ch, int from = 0) const),然后删除直到该位置的字节(使用 QByteArray 和 QByteArray::remove ( int pos, int len ))?

编辑:未测试,但类似以下内容:

QByteArray ba("first\nsecond\nthird\nfourth\nfifth");
size_t index = 0;
unsigned occur = 0;
while ((index = ba.indexOf('\n', index)) >= 0){ 
    ++occur;
    if (occur == 4){
        break;
    }   
}
if (occur == 4){
    ba.remove(0, index + 1); 
}

【讨论】:

  • 与正则表达式几乎相同,但似乎没有更简单的方法=)
猜你喜欢
  • 1970-01-01
  • 2014-04-25
  • 1970-01-01
  • 2021-05-17
  • 2019-03-27
  • 1970-01-01
  • 1970-01-01
  • 2012-12-28
  • 2023-03-20
相关资源
最近更新 更多