在特定项之后获取QString的一部分



我有一个QString,它看起来像这样

QString args = "perl /path#to#a#pe#lprogram -conf /path#to#a#conf#file -outdir /path#to#output#dir -outfile /path#to#output#file"

我想把/path#赋值给#output#dir和/path#赋值给#output#file,它位于-outdir和-outfile之后,赋值给一个新的QString变量。

我是QT新手

最简单的解决方案是将args拆分为字符串,并在stringlist中搜索outdiroutfile

使用以下函数http://qt-project.org/doc/qt-4.8/qstring.html#split拆分

你也应该考虑这个类http://qt-project.org/doc/qt-5/qcommandlineparser.html

感谢所有的评论(特别是Ashot)。这相当容易。问题是我不熟悉QT函数。下面是代码:

QString args = "perl /path#to#a#pe#lprogram -conf /path#to#a#conf#file -outdir /path#to#output#dir -outfile /path#to#output#file"
QStringList query = args.split(" ");
for (int i=0; i < query.size(); i++)
{
if (query.at(i).contains("-outputdir"))
{
    odir = query.at(i+1).trimmed();
}
if (query.at(i).contains("-outputfile"))
{
    ofile = query.at(i+1).trimmed();
}
}

谢谢!

最新更新