本文整理汇总了C++中qstringlist::Iterator::mid方法的典型用法代码示例。如果您正苦于以下问题:C++ Iterator::mid方法的具体用法?C++ Iterator::mid怎么用?C++ Iterator::mid使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类qstringlist::Iterator
的用法示例。
在下文中一共展示了Iterator::mid方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: parse
bool QOptions::parse(int argc, const char *const*argv)
{
if (mOptionGroupMap.isEmpty())
return false;
if (argc==1)
return true;
bool result = true;
QStringList args;
for (int i=1;i<argc;++i) {
args.append(QString::fromLocal8Bit(argv[i]));
}
QStringList::Iterator it = args.begin();
QList<QOption>::Iterator it_list;
mOptions = mOptionGroupMap.keys();
while (it != args.end()) {
if (it->startsWith("--")) {
int e = it->indexOf('=');
for (it_list = mOptions.begin(); it_list != mOptions.end(); ++it_list) {
if (it_list->longName() == it->mid(2,e-2)) {
if (it_list->type()==QOption::NoToken) {
it_list->setValue(true);
//qDebug("%d %s", __LINE__, qPrintable(it_list->value().toString()));
it = args.erase(it);
break;
}
if (e>0) { //
it_list->setValue(it->mid(e+1));
//qDebug("%d %s", __LINE__, qPrintable(it_list->value().toString()));
} else {
it = args.erase(it);
if (it == args.end())
break;
it_list->setValue(*it);
//qDebug("%d %s", __LINE__, qPrintable(it_list->value().toString()));
}
it = args.erase(it);
break;
}
}
if (it_list == mOptions.end()) {
qWarning() << "unknow option: " << *it;
result = false;
++it;
}
//handle unknow option
} else if (it->startsWith('-')) {
for (it_list = mOptions.begin(); it_list != mOptions.end(); ++it_list) {
QString sname = it_list->shortName();
int sname_len = sname.length(); //usally is 1
//TODO: startsWith(-height,-h) Not endsWith, -oabco
if (it->midRef(1).compare(sname) == 0) {
if (it_list->type() == QOption::NoToken) {
it_list->setValue(true);
it = args.erase(it);
break;
}
if (it->length() == sname_len+1) {//-o abco
it = args.erase(it);
if (it == args.end())
break;
it_list->setValue(*it);
//qDebug("%d %s", __LINE__, qPrintable(it_list->value().toString()));
} else {
it_list->setValue(it->mid(sname_len+1));
//qDebug("%d %s", __LINE__, qPrintable(it_list->value().toString()));
}
it = args.erase(it);
break;
}
}
if (it_list==mOptions.end()) {
qWarning() << "unknow option: " << *it;
result = false;
++it;
}
//handle unknow option
} else {
qWarning() << "unknow option: " << *it;
++it;
}
}
if (!result) {
print();
}
return result;
}