주어진 옵션이 발견된 INI 파일의 줄 번호를 가져오는 크로스 플랫폼 방법
문제:
주어진 옵션이나 섹션이 발견된 INI 파일의 줄 번호를 반환할 수 있는 C 라이브러리(예: Boost::program_options)를 찾고 있습니다.
사용 사례:
응답:
Boost의 가능성 활용 Spirit, line_pos_iterator를 사용하여 솔루션을 만들었습니다.
구현 세부 정보:
POSITIONSINFO = 0:
POSITIONSINFO = 1:
<code class="cpp">struct textnode_t { int sline, eline, scol, ecol; string_t text; };</code>
코드 조각:
<code class="cpp">#include <map> #include <string> #include <iterator> #include <boost/tuple/tuple_comparison.hpp> template <typename S = std::string, typename Cmp = std::less<S>> class IniFile { public: IniFile(Cmp cmp = Cmp()) : _cmp(cmp) {} IniFile(const std::string& filename, Cmp cmp = Cmp()) : _cmp(cmp) { open(filename); } void open(const std::string& filename); typedef S string_t; #if POSITIONINFO struct textnode_t { int sline, eline, scol, ecol; string_t text; // ... }; #else typedef string_t textnode_t; #endif typedef std::pair<textnode_t, textnode_t> keyvalue_t; typedef std::map<textnode_t, textnode_t> section_t; typedef std::map<textnode_t, section_t> sections_t; private: Cmp _cmp; };</code>
추가 리소스:
중요 사항: 제공된 솔루션은 C 11 지원이 필요하지 않지만 구문 분석 결과를 덤프하는 데 사용되었습니다.
위 내용은 C를 사용하여 특정 옵션이나 섹션이 있는 INI 파일의 줄 번호를 어떻게 얻을 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!