指定されたオプションが見つかった INI ファイルの行番号を取得するクロスプラットフォームの方法
問題:
指定されたオプションまたはセクションが見つかった INI ファイルの行番号を返すことができる C ライブラリ (boost::program_options など) を探しています。
使用例:
応答:
Boost の可能性を活用する精神、ソリューションは 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 中国語 Web サイトの他の関連記事を参照してください。