Difference between revisions of "Using INI Files/fr"

From Free Pascal wiki
Jump to navigationJump to search
(Created page with "{{INI Files}} ==INI Files== ===Information basique=== Les fichiers INI peuvent être utilisés pour enregistrer facilement des réglages utilisateur simples. Avec l'unité ''...")
 
m (Fixed syntax highlighting; deleted category included in page template)
 
(7 intermediate revisions by 2 users not shown)
Line 4: Line 4:
 
===Information basique===
 
===Information basique===
 
Les fichiers INI peuvent être utilisés pour enregistrer facilement des réglages utilisateur simples. Avec l'unité '''INIFiles'''  et la classe '''TINIFile''' vous pouvez simplement travailler avec les fichiers INI. Cette unité se trouve dans la FCL.
 
Les fichiers INI peuvent être utilisés pour enregistrer facilement des réglages utilisateur simples. Avec l'unité '''INIFiles'''  et la classe '''TINIFile''' vous pouvez simplement travailler avec les fichiers INI. Cette unité se trouve dans la FCL.
 +
Actuellement, seuls les fichiers INI compatibles avec la norme Microsoft sont supportés, l'emploi des sections est donc obligatoire.
  
 
===Fichiers INI===
 
===Fichiers INI===
Line 11: Line 12:
 
Les noms de sections sont mis dans des crochets ([Section]).
 
Les noms de sections sont mis dans des crochets ([Section]).
  
Les commentaires sont généralement permis et sont marqués avec des point virgules en début de ligne. Comme les fichiers INI ne sont pas totalement normalisés, d'autres caractères sont aussi utilisés tels que #.
+
Les commentaires sont généralement permis et sont marqués avec des points virgules en début de ligne. Comme les fichiers INI ne sont pas totalement normalisés, d'autres caractères sont aussi utilisés tels que #.
  
De nos jours, les fichiers XML sont souvent utilisés pour le stockage des chaînes au lieu des fichiers INI, parce que les fichiers INI ne manipulent pas bien les grandes chaînes.Pourtant, les fichiers (comme-)ini reste une manière dominante pour la configuration des réglage de Linux/Unix.
+
De nos jours, les fichiers XML sont souvent utilisés pour le stockage des chaînes au lieu des fichiers INI, parce que les fichiers INI ne manipulent pas bien les grandes chaînes. Pourtant, les fichiers (comme-)ini reste une manière dominante pour la configuration des réglage de Linux/Unix.
  
 
Un exemple de fichier ini:
 
Un exemple de fichier ini:
Line 35: Line 36:
 
===Exemple de lecture de fichier Ini===
 
===Exemple de lecture de fichier Ini===
  
The console application below shows how to read ini files. To test it one should create the following ini file with the name "C:\DB.ini". Edit it to so it contains a section called INIDB and the following keys and values:
+
L'application console du dessous montre comment lire des fichiers ini. Pour le tester, il faut créer le fichier suivant et le nommer "c:\DB.ini". Editez-le pour qu'il contienne une section nommée INIDB et les clés et valeurs suivantes:
  
 
<syntaxhighlight lang="ini">
 
<syntaxhighlight lang="ini">
 
[INIDB]
 
[INIDB]
; Save as C:\DB.ini
+
; Sauver sous C:\DB.ini
 
Author=Adam
 
Author=Adam
 
Pass=
 
Pass=
Line 45: Line 46:
 
</syntaxhighlight>
 
</syntaxhighlight>
 
   
 
   
Now let's move on the the code..
+
Maintenant, allons au code...
<syntaxhighlight>
+
 
 +
<syntaxhighlight lang=pascal>
 
Program IniSample;
 
Program IniSample;
  
Line 60: Line 62:
  
 
begin
 
begin
   // Create the object, specifying the place where it can find the ini file:
+
   // Créer l'objet en spécifiant son emplacement:
 
   INI := TINIFile.Create('C:\DB.ini');
 
   INI := TINIFile.Create('C:\DB.ini');
   // Demonstrates reading strings from the INI file.
+
   // Démontre la lecture de chaînes depuis le fichier INI.
 
   // You can also read booleans etc.
 
   // You can also read booleans etc.
 
   Author := INI.ReadString('INIDB','Author','');
 
   Author := INI.ReadString('INIDB','Author','');
Line 69: Line 71:
 
   if Pass <> '' then
 
   if Pass <> '' then
 
   begin
 
   begin
     Writeln('Password Required');
+
     Writeln('Mot de passe requis');
 
     Repeat
 
     Repeat
 
       Readln(PassEnter);
 
       Readln(PassEnter);
       if not (PassEnter = Pass) then Writeln('Wrong Password');
+
       if not (PassEnter = Pass) then Writeln('Mauvais mot de passe');
 
     until(PassEnter = Pass);
 
     until(PassEnter = Pass);
     Writeln('Correct Password');
+
     Writeln('Mot de passe correct');
 
   end;
 
   end;
 
   Writeln('Author : '+Author);
 
   Writeln('Author : '+Author);
 
   Writeln('File : '+DBFile);
 
   Writeln('File : '+DBFile);
 
   Writeln('Password : '+Pass);
 
   Writeln('Password : '+Pass);
   Readln;
+
   Readln;
   // After we used ini file, we must call the Free method of object
+
   // Après l'emploi du fichier ini, nous devons appeler la méthode Free de l'objet
   // ... although this really should be wrapped in a try..finally block
+
   // ...bien que cela devrait être vraiment enveloppé dans un bloc try .. finally
   // so that the object will be freed regardless of any errors above.
+
   // de sorte que l'objet est libéré quelles que soient les erreurs ci-dessus.
 
   Ini.Free;  
 
   Ini.Free;  
 
end.     
 
end.     
Line 88: Line 90:
  
 
===Objects to know===
 
===Objects to know===
In the TINIFile class there are many different properties, procedures and functions that can be used.
+
Dans la classe TINIFile, se trouve différentes propriétés, procédures et fonctions qui peuvent être utilisées.
  
'''CaseSensitive''' - This property allows you to say if the keys and sections are case sensitive or not. By default they aren't.
+
'''CaseSensitive''' - Cette propriété vous permet de dire si les clés et sections sont sensibles à la casse ou non. Par défaut, elles ne le sont pas.
  
'''ReadString''' - Has 3 constant statements. The first one is the section to search in. The second one is the key to look for. The third one is a default string in case the key and/or section searched for is not found.
+
'''ReadString''' - A 3 arguments. Le premier est la section dans laquelle il faut chercher. Le second est la clé à chercher. Le troisième est une valeur par défaut retournée en cas d'échec de la recherche section/clé.
  
'''WriteString''' - has three constant statements, too. The first is the section. The second is the key and the last is the value that you want to write. If the key and section exist already, the key will be overwritten with the new value..
+
'''WriteString''' - A 3 arguments, aussi. Le premier est la section. Le deuxième est la clé et le troisième est la valeur que vous voulez écrire. Si la clé et la section existe déjà, la valeur existante est écrasée par la nouvelle.
  
'''ReadSections''' - Will allow you to to take the sections from the INI file and put them in a TStrings class (or TStringList with the AS operator).
+
'''ReadSections''' - Vous permet de récupérer tous les noms de section dans un objet TString.
  
'''DeleteKey''' - Remove an existing key from a specific section.
+
'''DeleteKey''' - Supprime une clé existante d'une sectio spécifique.
  
'''EraseSection''' - Remove a section and all its data.
+
'''EraseSection''' - Supprime une section et toutes ses données.
  
There are more procedures and functions but this is enough to get you started.
+
Il y a d'autres procédures et fonctions mais cela suffit pour commencer.
  
 
===Reference Documentation===
 
===Reference Documentation===
Line 109: Line 111:
 
== Voir aussi ==
 
== Voir aussi ==
  
* [[XML Tutorial]]
+
* [[HistoryFiles]]
 
+
* [[XML Tutorial/fr|Tutoriel XML]]
[[Category:Tutorials/fr]]
 
[[Category:FPC]]
 

Latest revision as of 08:08, 4 March 2020

العربية (ar) Deutsch (de) English (en) español (es) suomi (fi) français (fr) polski (pl) русский (ru) 中文(中国大陆)‎ (zh_CN)

INI Files

Information basique

Les fichiers INI peuvent être utilisés pour enregistrer facilement des réglages utilisateur simples. Avec l'unité INIFiles et la classe TINIFile vous pouvez simplement travailler avec les fichiers INI. Cette unité se trouve dans la FCL. Actuellement, seuls les fichiers INI compatibles avec la norme Microsoft sont supportés, l'emploi des sections est donc obligatoire.

Fichiers INI

Les fichiers INI utilise des crochets pour créer et marquer des sections, qui contiennent des clés et des valeurs de clé. Une clé et sa valeur correspondante sont séparées par le signe égal (Clé=Valeur).

Les noms de sections sont mis dans des crochets ([Section]).

Les commentaires sont généralement permis et sont marqués avec des points virgules en début de ligne. Comme les fichiers INI ne sont pas totalement normalisés, d'autres caractères sont aussi utilisés tels que #.

De nos jours, les fichiers XML sont souvent utilisés pour le stockage des chaînes au lieu des fichiers INI, parce que les fichiers INI ne manipulent pas bien les grandes chaînes. Pourtant, les fichiers (comme-)ini reste une manière dominante pour la configuration des réglage de Linux/Unix.

Un exemple de fichier ini:

; Commentaire. Début du fichier INI

; les lignes vides sont ignorées

; notez qu'aucune sectio n'a été définie.
Compiler=Delphi
; Key: Compiler
; Value: Delphi

[General]
; Ici commence la section General
Compiler=FreePascal
; Key Compiler and value FreePascal

Exemple de lecture de fichier Ini

L'application console du dessous montre comment lire des fichiers ini. Pour le tester, il faut créer le fichier suivant et le nommer "c:\DB.ini". Editez-le pour qu'il contienne une section nommée INIDB et les clés et valeurs suivantes:

[INIDB]
; Sauver sous C:\DB.ini
Author=Adam
Pass=
DBFile=C:\Money.dat

Maintenant, allons au code...

Program IniSample;

{$mode objfpc}{$H+}

Uses
  Classes,SysUtils,INIFiles;

Var
 INI:TINIFile;
 Author,Pass,DBFile:String;
 PassEnter:String;

begin
  // Créer l'objet en spécifiant son emplacement:
  INI := TINIFile.Create('C:\DB.ini');
  // Démontre la lecture de chaînes depuis le fichier INI.
  // You can also read booleans etc.
  Author := INI.ReadString('INIDB','Author','');
  Pass := INI.ReadString('INIDB','Pass','');
  DBFile := INI.ReadString('INIDB','DBFile','');
  if Pass <> '' then
  begin
    Writeln('Mot de passe requis');
    Repeat
      Readln(PassEnter);
      if not (PassEnter = Pass) then Writeln('Mauvais mot de passe');
    until(PassEnter = Pass);
    Writeln('Mot de passe correct');
  end;
  Writeln('Author : '+Author);
  Writeln('File : '+DBFile);
  Writeln('Password : '+Pass);
  Readln;  
  // Après l'emploi du fichier ini, nous devons appeler la méthode Free de l'objet 
  // ...bien que cela devrait être vraiment enveloppé dans un bloc try .. finally
  // de sorte que l'objet est libéré quelles que soient les erreurs ci-dessus.
  Ini.Free; 
end.

Objects to know

Dans la classe TINIFile, se trouve différentes propriétés, procédures et fonctions qui peuvent être utilisées.

CaseSensitive - Cette propriété vous permet de dire si les clés et sections sont sensibles à la casse ou non. Par défaut, elles ne le sont pas.

ReadString - A 3 arguments. Le premier est la section dans laquelle il faut chercher. Le second est la clé à chercher. Le troisième est une valeur par défaut retournée en cas d'échec de la recherche section/clé.

WriteString - A 3 arguments, aussi. Le premier est la section. Le deuxième est la clé et le troisième est la valeur que vous voulez écrire. Si la clé et la section existe déjà, la valeur existante est écrasée par la nouvelle.

ReadSections - Vous permet de récupérer tous les noms de section dans un objet TString.

DeleteKey - Supprime une clé existante d'une sectio spécifique.

EraseSection - Supprime une section et toutes ses données.

Il y a d'autres procédures et fonctions mais cela suffit pour commencer.

Reference Documentation

Here: Free Pascal documentation on INI files

Voir aussi