本文整理汇总了C++中LString::split方法的典型用法代码示例。如果您正苦于以下问题:C++ LString::split方法的具体用法?C++ LString::split怎么用?C++ LString::split使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类LString
的用法示例。
在下文中一共展示了LString::split方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: setRendNames
void RendPropAnim::setRendNames(LString val)
{
// invalidate uid cache
m_rendPtrList.clear();
m_rendNameList.clear();
// extract comma-separated name list
std::list<LString> ls, tmpl;
val.split(',', ls);
BOOST_FOREACH (const LString &elem, ls) {
LString sobj, srend;
int spos = elem.indexOf('/');
if (spos<0) {
srend = elem.trim();
if (!srend.isEmpty())
tmpl.push_back(srend);
}
else {
sobj = elem.substr(0, spos).trim();
srend = elem.substr(spos+1).trim();
if (!sobj.isEmpty() && !srend.isEmpty())
tmpl.push_back(sobj+"/"+srend);
}
m_rendNameList.push_back(nmlist_t::value_type(sobj, srend));
}
示例2: renum
//static
LScrMatrix4D *LScrMatrix4D::fromStringS(const LString &src)
{
if (src.equalsIgnoreCase("(identity)"))
return MB_NEW LScrMatrix4D();
LString renum("\\s*(\\S+)\\s*");
// remove parentheses
LRegExpr re1("\\((.+)\\)");
if (!re1.match(src) || re1.getSubstrCount()<1+1) {
// ERROR!!
LString msg = LString::format("cannot convert \"%s\" to matrix", src.c_str());
MB_THROW(RuntimeException, msg);
return NULL;
}
LString val = re1.getSubstr(1);
std::list<LString> ls;
val.split(',', ls);
if (ls.size()!=16) {
// ERROR!!
LString msg = LString::format("cannot convert \"%s\" to matrix", src.c_str());
MB_THROW(RuntimeException, msg);
return NULL;
}
double d;
int i=1;
LScrMatrix4D *pRes = MB_NEW LScrMatrix4D();
BOOST_FOREACH (LString e, ls) {
if (!e.toDouble(&d)) {
// ERROR!!
delete pRes;
LString msg = LString::format("cannot convert \"%s\" to matrix", src.c_str());
MB_THROW(RuntimeException, msg);
return NULL;
}
pRes->Matrix4D::ai(i) = d;
++i;
}
return pRes;
}