如何在Qt中删除字符串(qstring)中的子字符串



Qt中是否有类似于Delphi中的delete((和copy((的函数。

我正在从通过USB连接到计算机的设备读取数据并将其存储为QString。读取的每一行都不相同(或者被缩短,即使在使用 readyRead 时也是如此(。我创建了一个缓冲区刺痛来添加这些"半刺"(例如字符串 = "This"而不是"这是一个字符串#"(,现在我想复制字符串直到"#",然后删除字符串,所以如果新的"半刺"被添加,我可以对它们做同样的事情。下面的代码是我尝试过的

void MainWindow::readSerial()
{
QByteArray serialData = port->readAll();
serialBuffer += serialData;
QByteArray serialString = serialBuffer.
qDebug() << serialString;
ui -> textEdit ->append(serialString);
//serialBuffer.replace(serialString,"");
}

上面的代码只返回一个空字符串。

void MainWindow::readSerial()
{
QByteArray serialData = port->readAll();
serialBuffer += serialData;
QString serialString = serialBuffer.mid(serialBuffer.indexOf("$"),serialBuffer.indexOf("rn"));
qDebug()<< "index of rn" << serialBuffer.indexOf("rn");
qDebug() << "SerialString" <<serialString;
ui -> textEdit ->append(serialString);
qDebug() << "SerialBuffer: " << serialBuffer;
serialBuffer.replace(serialString + "rn","");
}

上面的代码有效。谢谢大家。

问候

最新更新