1

INI に似た構成ファイルを作成していますが、C/C++ でそれを解析する最良の方法を知りたいです。私は POSIX で書いているので、; の代わりに # を使用します。どちらでも構いません。私が知りたいのは、ある種のチュートリアル、物事の解析に関する記事などがありますか。

4

6 に答える 6

3

構文解析に関するチュートリアルや記事はたくさんありますが、扱っている内容は非常に些細なものであり、そのほとんどはやり過ぎかもしれません。

これまでにどれだけの頻度でこれが行われてきたかを考えると、まず、あなたが望むものをほぼ実装している既存のコードのいくつかを調べることから始めます。

于 2010-09-12T16:31:57.470 に答える
2

libiniなど、ほとんどまたはまったく変更せずに使用できるオープン ソース ライブラリがすでにたくさんあります。

于 2010-09-12T17:10:11.057 に答える
1

Configuratorを試してください。これは、構成ファイルの解析用の使いやすく柔軟なC ++ライブラリです(最も単純なINIから、任意のネストとセマンティックチェックを備えた複雑なファイルまで)。ヘッダーのみおよびクロスプラットフォーム。BoostC++ライブラリを使用します。

参照: http: //opensource.dshevchenko.biz/configurator

于 2010-11-11T19:43:40.950 に答える
1

C ++の基本的なものでよくあるように、ブーストにはiniファイルを読み取ることができるライブラリがあります。実際、達成したい内容に応じて、2 つのライブラリがあります。

于 2010-09-12T21:37:50.457 に答える
0

実際に必要な複雑さに応じて、ループで fgets() を使用し、各行を手動で解析するだけで済む場合があります (たとえば、strstr()、strchr()、strcmp() などを使用)。いくつかの値を取得する必要がある場合は、解析ライブラリでドラッグしてもほとんど意味がありません。

于 2010-09-12T22:05:38.860 に答える
0

Boost がやり過ぎである場合は、この 6 Kb BSD ライセンス コードを試してください。

「inih (INI Not Invented Here) は、C で記述されたシンプルな .INI ファイル パーサーです。わずか数ページのコードであり、小さくてシンプルになるように設計されているため、組み込みシステムに適しています。」

http://code.google.com/p/inih/

オブジェクトを好む場合は、C++ クラスもあり、「;」の両方をサポートします。および「#」コメント。

于 2013-12-25T20:41:01.297 に答える