[英]Execute Command with QProcess and Store result in QStringList
我編寫了以下 function 執行 windows 枚舉命令以獲取共享文件夾並將結果存儲在 QString 中。
QProcess p;
p.setProgram("wmic");
p.setArguments({"share", "get", "name"});
p.start();
if (!p.waitForFinished()) {
return;
}
const QString output = p.readAllStandardOutput();
qDebug () << output;
const QString error = p.readAllStandardError();
if (!error.isEmpty()) {
qDebug () << error;
}
但是 output 有很多分隔符,例如“\n\r”......所以我想從我的字符串 output 中刪除所有這些分隔符。 在下一步中,您認為我們將得到如下結果:
C$
D$
E$
IPC$
所以我想將這些名稱保存在 QStringList 或類似列表中,我可以在組合小部件中獨立地 append 這些名稱。 我怎樣才能做到這一點?
您可以只使用 qstring 拆分:
QStringList list = output.split("\n", QString::SkipEmptyParts);
如果您需要更“智能”的拆分,您可以傳入正則表達式:
list = output.split(QRegExp("...some regex..."));
跳過空白部分只是“刪除”/忽略任何為空的值 - 我認為在這種情況下你不需要
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.