2013-05-29 6 views
0

Мне нужно разобрать вывод команды vol только для получения идентификатора i.e только abcd-1234, который используется в QProcess. Вот мой код, чтобы получить серийный номер тома:Анализ вывода в Qt

QProcess process; 
process.start("cmd /c vol C:"); 
process.waitForFinished(-1); 
QByteArray out = process.readAllStandardOutput(); 
qDebug() << out; 

Помогите мне, спасибо ...

+0

Вы могли бы попробовать немного сложнее –

ответ

1

Вы можете использовать регулярное выражение с QRegExp (http://qt-project.org/doc/qt-4.8/qregexp.html), чтобы найти идентификатор. Команда 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; 
} 
+0

Спасибо много, может у плз добавить это в моем коде выше ?? – highlander141

Смежные вопросы