Como ler arquivo de configuração em C++

Para ler arquivo de configuração em C++ existe uma biblioteca chamada Boost Property Tree.

Basicamente essa biblioteca te disponibiliza uma estrutura de Chave e Valor, tanto para arquivos .INI quanto para .XML e .JSON.

Exemplo de Arquivo .INI

// process.ini
[database]
host=0.0.0.0
port=1234

[log]
path=/tmp
file=%process%_%timestamp%_%n%.log
size=1024

Como Funciona a Boost Property Tree

Simples como ler um arquivo usando fstream.

Exemplo


// criando uma variável do tipo property_tree
boost::property_tree::ptree tree;

// lendo um arquivo .ini
boost::property_tree::read_ini("process.ini", tree);

Como usar a Boost Property Tree

Nos links de referência abaixo tem o meu projeto no GitHub para iniciar o seu teste!.


// como recuperar um valor da estrutura
// como pode ver o acesso ao grupo e valor da chave devem ser separados por ponto
// esse exemplo mostra como recuperar o valor passando o grupo e chave host
std::string host = tree.get<std::string>("database.host");
/** Caso não seja configurado o valor no arquivo você pode atribuir um valor
* padrão passando no segundo parâmetro da função 'get'
**/
int port = tree.get("database.port", 1234);

A Boost::Property_Tree também possibilita a leitura de arquivos XML e JSON, para isso você deve usar as funcões read_xml/read_json.

Links de Referência

Tem alguma dúvida ou sugestão para o artigo! Deixe nos comentários!

You may also like...

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *