在Qt中解析输出
我只需要解析在Qt中解析输出,qt,parsing,qprocess,Qt,Parsing,Qprocess,我只需要解析vol命令的输出来获取id,即仅abcd-1234,该id正在QProcess中使用。以下是获取卷序列号的代码: QProcess process; process.start("cmd /c vol C:"); process.waitForFinished(-1); QByteArray out = process.readAllStandardOutput(); qDebug() << out; QProcess过程; 进程启动(“cmd/c vol c:”);
vol
命令的输出来获取id,即仅abcd-1234
,该id正在QProcess
中使用。以下是获取卷序列号的代码:
QProcess process;
process.start("cmd /c vol C:");
process.waitForFinished(-1);
QByteArray out = process.readAllStandardOutput();
qDebug() << out;
QProcess过程;
进程启动(“cmd/c vol c:”);
进程。waitForFinished(-1);
QByteArray out=进程.readAllStandardOutput();
qDebug()您可以使用带有QRegExp()的正则表达式来查找ID。
vol命令将始终返回相同的消息。因此,您可以逐行读取结果并搜索匹配行:
QRegExp rx( "The Volume Serial Number is (.+)\\."); // Match the line with the ID and store it.
if ( rx.exactMatch( line ) {
QString id = rx.capturedTexts(1); // The first elt is the entire matching text.
qDebug() << id;
}
QRegExp rx(“卷序列号为(+)\\”)//将该行与ID匹配并存储它。
如果(rx.exactMatch(行){
QString id=rx.capturedTexts(1);//第一个elt是整个匹配文本。
你可以再努力一点