QByteArray удалить первые 4 строки

У меня есть QByteArray и мне нужно удалить первые 4 строки. Я могу сделать это, например, с помощью регулярных выражений, но так ли это проще?

UPD: первые строки (более 4) в моем QByteArray — это текст, с ‘\ n’ в конце.

0

Решение

Как насчет поиска четвертого вхождения ‘\ 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);
}
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]