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

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

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("\r\n"));

    qDebug()<< "index of \r\n" << serialBuffer.indexOf("\r\n");
    qDebug() << "SerialString" <<serialString;
    ui -> textEdit ->append(serialString);
    qDebug() << "SerialBuffer: " << serialBuffer;

    serialBuffer.replace(serialString + "\r\n","");

}


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

问候

09-06 09:41