1. Il est nécessaire de comprendre la structure du fichier INI :
;commentaire
[nom de la section]
mot clé = valeur
...
Les fichiers INI autorisent plusieurs sections, et chaque section autorise plusieurs mots-clés. "=" est suivi de la valeur du mot-clé.
Il existe trois types de valeurs : les chaînes, les valeurs entières et les valeurs booléennes. La chaîne est stockée dans le fichier INI sans guillemets, la valeur booléenne vraie est représentée par 1 et la valeur booléenne fausse est représentée par 0.
Les commentaires commencent par un point-virgule ";".
2. Définition
1. Ajoutez IniFiles dans la section Utilisations de l'interface ;
2. Ajoutez une ligne à la section de définition de variable Var :
monfichier:Tinifile;
Ensuite, vous pouvez créer, ouvrir, lire, écrire et autres opérations sur la variable myinifile.
3. Ouvrez le fichier INI
monfichier:=Tinifile.create('program.ini');
La ligne d'instruction ci-dessus établira une connexion entre la variable myinifile et le fichier spécifique program.ini. Ensuite, la valeur des mots-clés dans le fichier program.ini peut être lue et écrite via la variable myinifile.
Il convient de noter que si le nom du fichier entre parenthèses ne spécifie pas de chemin, alors le fichier Program.ini sera stocké dans le répertoire Windows. La méthode pour stocker le fichier Program.ini dans le répertoire actuel de l'application consiste à spécifier. un chemin complet et un nom de fichier. Les deux instructions suivantes peuvent remplir cette fonction
capable:
Nom de fichier :=ExtractFilePath(Paramstr(0))+'program.ini';
monfichier:=Tinifile.Create(nom de fichier);
4. Lisez la valeur du mot-clé
Pour les trois types de données chaînes, valeurs entières et valeurs booléennes pris en charge par les fichiers INI, la classe TINIfiles fournit trois méthodes objet différentes pour lire les valeurs des mots-clés dans les fichiers INI.
Supposons que les variables définies vs, vi et vb sont respectivement de type chaîne, entier et booléen.
vs:=myinifile.Readstring('nom de section','mot-clé', valeur par défaut);
vi:=myinifile.Readinteger('nom de section','mot-clé', valeur par défaut);
vb:=myinifile.Readbool('nom de section','mot-clé', valeur par défaut);
La valeur par défaut est la valeur par défaut renvoyée lorsque le mot-clé n'existe pas dans le fichier INI.
5. Écrivez le fichier INI
De même, la classe TInifile fournit également trois méthodes objet différentes pour écrire des mots-clés de type chaîne, entier et booléen dans le fichier INI.
myinifile.writestring('nom de section', 'mot-clé', variable ou valeur de chaîne);
myinifile.writeinteger('nom de section', 'mot-clé', variable ou valeur entière);
myinifile.writebool('nom de section', 'mot-clé', variable ou True ou False);
Lorsque le fichier INI n'existe pas, l'instruction ci-dessus créera automatiquement le fichier INI.
6. Supprimer des mots-clés
En plus d'ajouter un mot-clé à l'aide de la méthode write, la classe Tinifile fournit également une méthode objet pour supprimer des mots-clés :
myinifile.DeleteKey('nom de la section','mot-clé');
7. Fonctionnement des sections
L'ajout d'une section peut être effectué avec la méthode write, et la suppression d'une section peut être effectuée avec la méthode objet suivante :
monfichier.EraseSection('nom de la section');
De plus, la classe Tinifile fournit également trois méthodes objets pour opérer sur les sections :
myinifile.readsection('section name', variable TStrings); peut lire tous les noms de mots clés de la section spécifiée dans une variable de liste de chaînes ;
myinifile.readsections (variable TStrings) ; peut lire tous les noms de sections du fichier INI dans une variable de liste de chaînes.
myinifile.readsectionvalues('section name', variable TStrings); peut lire toutes les lignes (y compris les mots-clés, =, valeurs) de la section spécifiée dans le fichier INI dans une variable de liste de chaînes.
8. Libération
Libérez myinifile à l'emplacement approprié avec l'instruction suivante :
monfichierini.distory;
9. Un exemple
Ce qui suit utilise un exemple simple (comme indiqué dans la figure) pour démontrer la méthode de création, de lecture et de stockage des fichiers INI. Le fichier myini.ini contient la section « Paramètres du programme » et trois mots-clés : nom d'utilisateur (chaîne), statut d'utilisateur officiel (valeur booléenne) et temps écoulé (valeur entière). Le programme lit ces données lors de la création du formulaire et écrit le fichier myini.ini lorsque le formulaire est publié.
Liste des programmes sources ci-jointe
unitéUnité1 ;
interface
utilise
Windows, messages, SysUtils, variantes, classes, graphiques, contrôles, formulaires,
Boîtes de dialogue, IniFiles, StdCtrls, ExtCtrls ;
taper
TForm1=classe(TForm)
Edit1:TEdit;
Edit2:TEdit;
CheckBox1 : TCcheckBox ;
Minuterie1 : TIminuterie ;
procédureFormCreate(Expéditeur:TObject);
procédureFormDestroy(Expéditeur:TObject);
procédureTimer1Timer(Expéditeur:TObject);
privé
{Déclarations privées}
publique
{Déclarations publiques}
fin;
var
Formulaire1 : TForm1 ;
monfichier:Tinifile;
mise en œuvre
{$R*.dfm}
procédureTForm1.FormCreate(Expéditeur:TObject);
var
nom de fichier : chaîne ;
commencer
nom de fichier :=ExtractFilePath(paramstr(0))+´myini.ini´ ;
monfichier:=TInifile.Create(nom de fichier);
edit1.Text:=myinifile.readstring('paramètres du programme','nom d'utilisateur', 'nom d'utilisateur par défaut');
edit2.text:=inttostr(myinifile.readinteger(´paramètres du programme´,´durée d'exécution écoulée´,0));
checkbox1.Checked:=myinifile.readbool(´paramètres du programme´,´s'il s'agit d'un utilisateur officiel´,False);
fin;
procédureTForm1.FormDestroy(Expéditeur:TObject);
commencer
myinifile.writestring('paramètres du programme','nom d'utilisateur',edit1.Text);
myinifile.writeinteger('paramètres du programme','durée d'exécution écoulée',strtoint(edit2.text));
myinifile.writebool('Paramètres du programme', 'Est-ce un utilisateur officiel', checkbox1.Checked);
monfichierini.Destroy;
fin;
procédureTForm1.Timer1Timer(Expéditeur:TObject);
commencer
edit2.Text:=inttostr(strtoint(edit2.text)+1);
fin;
fin.
Cet exemple a réussi le débogage sous Delphi6.0+WinXP.