0

QByteArray があり、最初の 4 行を削除する必要があります。たとえば、正規表現でそれを行うことができますが、もっと簡単な方法はありますか?

UPD: QByteArray の最初の行 (4 行以上) はテキストで、最後に '\n' があります。

4

1 に答える 1

2

'\n' の 4 番目の出現箇所を検索し ( 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); 
}
于 2013-07-05T13:14:05.047 に答える