QByteArray:如何搜索其中的角色

Lit*_*nts 0 c++ qt qbytearray

从QByteArray开始,我想在我的QByteArray中搜索"\n"char并将所有字符从头开始加到"\n"并将它们保存在QString中; 之后,我将传递给下一个字节直到下一个"\n"并将它们保存到一个新的QString中

QByteArray MyArray= (all data from my previous process);
quint16 ByteArrayCount = MyArray.count(); // number of bytes composing MyArray
quint16 mycounter;
QString myString;
while (mycounter < ByteArrayCount)
{
    if(MyArray[mycounter] != "\n")
      myString.append(MyArray[mycounter]);
    mycounter++;
}
Run Code Online (Sandbox Code Playgroud)

这将附加新行之前的所有字节; 我的问题是如何评估MyArray [counter],因为我无法在计数器增加时检查每个字节.

解?

dte*_*ech 7

你可以省去麻烦,简单地说:

QString s(myArray);
QStringList resultStrings = s.split('\n');
Run Code Online (Sandbox Code Playgroud)

这将为您提供一个为每个新行字符分割的字符串列表,这就是您想要做的事情.

此外,不要强调这一点,但你没有初始化你的计数器,你真的应该 ;)