C++Configプロファイルクラス

4517 ワード


本明細書では、jsoncppが提供する方法が簡単で読みやすいため、Configクラスのシーケンス化および逆シーケンス化に使用されるjsoncpp.プロファイルのフォーマットももちろんjsonです.
1 {
2    "image" : {
3       "savepath" : "D:\\Documents\\Pictures\\Wayixia"
4    }
5 }

Googleでは「C++Config」という文章がたくさんありますが、niceと書いてありますが、いずれもiniで、iniの階層やデータ構造は限られています.例えば、
1 [image]
2 files=1.jpg,2.jpg,3.jpg

iniツールクラスを介してfilesのコンテンツを読み取る場合、コンテンツをフォーマットする方法またはインタフェースが必要になります.構成内容が多い場合、修正や読み取りを容易にするために、追加のコードを書かなければなりません.
 1 [sectionname1]
 2 fieldname=...
 3 
 4 [sectionname2]
 5 fieldname=...
 6 
 7 [sectionname3]
 8 fieldname=...
 9 
10 ...

理想的なプロファイルクラスのインタフェースは簡単で、自然生産のJosnファイルも簡単で読みやすいです.
 1 Config config;
 2 //     
 3 config.FromFile([filename]);
 4 
 5 // Get   
 6 // value      ,          ,  v.toInt(), v.toString()...
 7 value v = config.Get("sectionname.fieldname", [default_value]);
 8 
 9 //        
10 int a = v.toInt()
11 std::string s = v.toString();
12 ...
13 
14 // Set   
15 config.Set("sectionname.fieldname", [value]);
16 
17 //      
18 config.ToFile([filename])

以下はパッケージ化されたConfigクラスで、使用前にjsoncppのヘッダファイルとライブラリを構成する必要があります.ここをクリックしてダウンロードします. 
もちろん、jsonで構成されたアプリケーションは少なくなく、興味のある学生は討論に参加することを歓迎します.誤りを発見したら直ちに修正を通知して、ありがとうございます!