QByteArray删除前4行

时间:2013-07-05 13:06:03

标签: c++ qt qbytearray

我有QByteArray,需要删除前4行。例如,我可以使用正则表达式来完成它,但它是否更简单?

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

1 个答案:

答案 0 :(得分:2)

如何搜索'\ 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); 
}