本文整理汇总了C++中StringA::explodeWithOneOf方法的典型用法代码示例。如果您正苦于以下问题:C++ StringA::explodeWithOneOf方法的具体用法?C++ StringA::explodeWithOneOf怎么用?C++ StringA::explodeWithOneOf使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类StringA
的用法示例。
在下文中一共展示了StringA::explodeWithOneOf方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: load
//---------------------------------------------------------------------------
void ConfigFileRo::load (const char* pszPath)
{
StringAVec vecLines;
// reset
m_Settings.clear();
// check file
if (!FileSystem::doesExist(pszPath))
GLB_THROWEXCODE(EXCODE_FILE_DOESNTEXIST);
if (FileSystem::getSize(pszPath) > std::numeric_limits<uint32>::max())
GLB_THROWEXCODE(EXCODE_MEMORY); // file is too big
// extract file content
{
uint32 uiSize = (uint32)FileSystem::getSize(pszPath); // it is safe to cast-down here
StringA strLines;
byte* pBuffer;
pBuffer = (byte*)strLines.acquireBuffer(uiSize, false);
FileSystem::extractContent(pszPath, pBuffer, uiSize);
strLines.releaseBuffer();
strLines.trimWhitespaces();
strLines.explodeWithOneOf(vecLines, "\r\n");
}
// parse lines
for (uint i = 0; i < vecLines.size(); ++i)
{
StringAVec vecL;
// skip empty and comment lines
vecLines[i].trimWhitespaces();
if (vecLines[i].isEmpty() || vecLines[i][0] == '#')
continue;
// break key-value pair
vecLines[i].explodeWithOneOf(vecL, "\t ", 2);
if (vecL.size() >= 1)
{
if (vecL.size() < 2)
vecL.push_back(StringA());
if (m_Settings.find(vecL[0]) != m_Settings.end())
GLB_LOGWARN("Duplicated setting name \"%s\" in config file \"%s\" !", vecL[0].c_str(), pszPath);
m_Settings.insert(Settings::value_type(vecL[0], vecL[1]));
}
}
}