У меня есть QByteArray и мне нужно удалить первые 4 строки. Я могу сделать это, например, с помощью регулярных выражений, но так ли это проще?
UPD: первые строки (более 4) в моем QByteArray — это текст, с ‘\ n’ в конце.
Как насчет поиска четвертого вхождения ‘\ 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);
}
Других решений пока нет …