ksacvet777.moy.su
Главная » Статьи » 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 chardefault);
    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 можно скачать тут




Категория: IT | Добавил: ksacvet777 (28.01.2014)
Просмотров: 434 | Теги: config, Class, ini, File, C++ | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *: