我有QByteArray,需要删除前4行。例如,我可以使用正则表达式来完成它,但它是否更简单?
UPD:我的QByteArray中的第一行(超过4行)是文本,最后是'\ n'。
答案 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);
}