Главная » Статьи » IT |
простой класс для хранения конфигурации
Очень простой класс для хранения конфигурации в формате ini на базе STL и BOOST ConfigIniFile.h #pragma once #include <string> #include <vector> using std::string; using std::wstring; #include <windows.h> class ConfigIniFile { public: wstring filename; static bool file_exists(const wstring& filaname); static void save_string(const string& s, const wstring& filename); static void load_string(string& s, const wstring& filename); struct Value : public std::pair<string,string> { Value() {} Value(const Value& a) { *this = a;} Value( const string& key , const string& val ) { first=key; second =val; } }; struct Section { string name; std::vector<Value> values; Section() {} Section(const Section& a) { *this = a;} Section(const string& _name) : name(_name) {} }; std::vector<Section> sections; ConfigIniFile(); ConfigIniFile( const wstring& _filename ); ~ConfigIniFile(); bool is_section_exists(const char* sect); bool is_key_exists(const char* sect, const char* key); void erase_section(const char* sect); void erase_key(const char* sect, const char* key); string get_value(const char* sect, const char* key, const char* default); void set_value(const char* sect, const char* key, const char* val); bool get_bool(const char* sect, const char* key, bool default); void set_bool(const char* sect, const char* key, bool val); int get_int(const char* sect, const char* key, int default); void set_int(const char* sect, const char* key, int val); float get_float(const char* sect, const char* key, float default); void set_float(const char* sect, const char* key, float val); string make_ini_text() const; void read_ini_text(const string& txt); // save ini to file void save(); }; Файл реализации ConfigIniFile.cpp можно скачать тут | |
Просмотров: 434 | | |
Всего комментариев: 0 | |