本文整理汇总了C++中Section::empty方法的典型用法代码示例。如果您正苦于以下问题:C++ Section::empty方法的具体用法?C++ Section::empty怎么用?C++ Section::empty使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Section
的用法示例。
在下文中一共展示了Section::empty方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: parse
void File::parse(const wstring& text) {
clear();
wstring section_name;
Section section;
size_t begin_pos = 0;
while (begin_pos < text.size()) {
size_t end_pos = text.find(L'\n', begin_pos);
if (end_pos == wstring::npos)
end_pos = text.size();
else
end_pos++;
wstring line = strip(text.substr(begin_pos, end_pos - begin_pos));
if ((line.size() > 2) && (line[0] == L'[') && (line[line.size() - 1] == L']')) {
// section header
if (!section.empty()) {
(*this)[section_name] = section;
section.clear();
}
section_name = strip(line.substr(1, line.size() - 2));
}
if ((line.size() > 0) && (line[0] == L';')) {
// comment
}
else {
size_t delim_pos = line.find(L'=');
if (delim_pos != wstring::npos) {
// name = value pair
wstring name = strip(line.substr(0, delim_pos));
wstring value = strip(line.substr(delim_pos + 1, line.size() - delim_pos - 1));
// remove quotes if needed
if ((value.size() >= 2) && (value[0] == L'"') && (value[value.size() - 1] == L'"'))
value = value.substr(1, value.size() - 2);
if (!name.empty() && !value.empty())
section[name] = value;
}
}
begin_pos = end_pos;
}
if (!section.empty()) {
(*this)[section_name] = section;
}
}