0

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

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

4

1 回答 1

2

搜索第四次出现的 '\n' 怎么样(使用 int QByteArray::indexOf (char ch, int from = 0) const)然后删除直到该位置的字节(使用 QByteArray & QByteArray::remove (int pos,国际化))?

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

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); 
}
于 2013-07-05T13:14:05.047 回答