Home

INIMANAGER: una classe per trattare i file .ini


Mi capita spesso di realizzare e/o utilizzare applicazioni dove alcuni dei parametri che controllano il funzionamento del programma vengono definiti attraverso dei file di setup, utilizzando un formato del tipo:

[sezione]
#commento
parametro1=valore
parametro2=valore

etc. In ambiente windows ciò è ben noto come formato ".ini". Sebbene esso sia ormai obsoleto (a partire da Windows 95 si usano i registry di windows), è tuttavia un formato comodo da utilizzare, specie se si realizza un'applicazione destinata a funzionare non solo sotto Windows, ma anche per esempio su Linux o *BSD.

Molti ambienti di sviluppo offrono delle classi per gestire il formato .ini: ad esempio l'ambiente Borland C++ Builder dispone dell'oggetto TINIFile. Tuttavia il problema è che questi oggetti sono solitamente non portabili da un sistema operativo all'altro. Così ho finito con il costruirmi una classe ad hoc per manipolare i file .ini, che potete prelevare qui. Non è una classe molto sofisticata, ma dovrebbe essere portabile un po' dovunque. Usarla è molto semplice: seguite l'esempio, o guardate la breve documentazione presente nel sorgente:

#include "IniManager.h"

......

string s;
int i;
float f;

IniManager MyIni("dsp.ini");

MyIni.Get("username", s, "none", "");
MyIni.Get("firlen", i, 255, "FILTROA");
MyIni.Get("f0", f, 12500.0, "FILTROB");

MyIni.Write("dsp2.ini");



se il file di input è:

username=Vittorio
[FILTROA]
firlen=201
BW=6000.0
[FILTROB]
firlen=1024
BW=170.0
f0=14625.0


dopo l'esecuzione del programma si ha che username="Vittorio", firlen=201 e f0=12500, e il file dsp2.ini conterrà:


username=Vittorio
[FILTROA]
f0=12500.0
firlen=201
BW=6000.0
[FILTROB]
firlen=1024
BW=170.0
f0=14625.0

Il metodo Get() ritorna true se il parametro cercato è presente nel file .ini di input, altrimenti ritorna false.


Home

Tutti i diritti riservati. La riproduzione di testo e figure di questo sito è protetta dalle norme di legge internazionali sul diritto d'autore.