Выполнить команду с помощью QProcess и сохранить результат в QStringList - PullRequest
1 голос
/ 12 июля 2020

Я написал следующую функцию, которая выполняет команду перечисления 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;   
    }

Но в выводе есть много разделителей, таких как «\ n \ r "... поэтому я хотел удалить все эти разделители из вывода строки. На следующем шаге вы считаете, что у нас будет результат, подобный следующему:

C$
D$
E$
IPC$

Итак, я хотел сохранить эти имена в QStringList или что-то вроде списка, в который я могу добавить эти имена в комбо виджет самостоятельно. Как я могу это сделать?

1 Ответ

2 голосов
/ 12 июля 2020

Вы можете просто использовать qstring split:

QStringList list = output.split("\n", QString::SkipEmptyParts);

Если вам нужно более «умное» разбиение, которое вы можете передать в регулярном выражении:

list = output.split(QRegExp("...some regex..."));

Пропуск пустых частей просто "удаляет" / игнорирует любые значения, которые были бы пустыми - я не думаю, что вам это нужно в этом случае

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...