当前位置: 首页>>代码示例>>C++>>正文


C++ Section::empty方法代码示例

本文整理汇总了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;
    }
}
开发者ID:Frankie-666,项目名称:farmanager,代码行数:42,代码来源:iniparse.cpp


注:本文中的Section::empty方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。