簡體   English   中英

使用 QProcess 執行命令並將結果存儲在 QStringList 中

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM