begin process at 2012 02 16 04:40:34
  Trouver un code source :
 
dans
 
Accueil > 

Tutoriels

 > 

API

 > Présentation et Utilisation des Fichiers INI

Présentation et Utilisation des Fichiers INI


 Information sur le tutoriel

Note :
Aucune note

 Description

Ce tutorial présente :
- les API windows utilisées pour lire et écrire dans des fichiers INI
- La structure des fichiers INI
- L'utilisation dans le code de la lecture et l'écriture dans ces fichiers.

Je me suis inspiré des codes sources présents sur le site.
N'hésitez pas à laisser vos remarques.
Merci

Tutorial

1. Définition (Wikipédia)

En jargon informatique, un fichier INI désigne un fichier de configuration dans un format introduit par les systèmes d'exploitationWindows. Par convention les noms de ces fichiers portent l'extension «.ini».

 

2. Les fonctions API

Les deux fonctions que nous allons utiliser sont GetPrivateProfileString et WritePrivateProfilString.

Dans un module vb6, on va placer ce code :


Option Explicit

 

'-- Déclaration des fonctions API

Private Declare Function GetPrivateProfileString Lib "kernel32" _

                         Alias "GetPrivateProfileStringA" _

                        (ByVal lpApplicationName As String, _

                         ByVal lpKeyName AsAny, _

                         ByVal lpDefault AsString, _

                         ByVal lpReturnedString AsString, _

                         ByVal nSize AsLong, _

                         ByVal lpFileName AsString) AsLong

 

Private Declare Function WritePrivateProfileString Lib "kernel32" _

                         Alias "WritePrivateProfileStringA" _

                        (ByVal lpApplicationName AsString, _

                         ByVal lpKeyName AsAny, _

                         ByVal lpString AsAny, _

                         ByVal lpFileName As String) AsLong

                        

'***************************************************************************

'* Fonction permettant l'écriture dans un fichier INI

'***************************************************************************

Public Function EcritDansFichierIni(section As String, _

                                     Cle As String, _

                                     Valeur As String, _

                                     Fichier As String) As Long

            

    EcritDansFichierIni = WritePrivateProfileString(section, Cle, Valeur, Fichier)

 

End Function

 

'***************************************************************************

'* Fonction permettant la lecture dans un fichier INI

'***************************************************************************

Public Function LitDansFichierIni(section As String, _

                                   Cle As String, _

                                   Fichier As String, _

                                   Optional ValeurParDefaut As String = "") As String

 

Dim strReturn As String

   

    strReturn = String(255, 0)

    GetPrivateProfileString section, Cle, ValeurParDefaut, strReturn, Len(strReturn), Fichier

    LitDansFichierIni = Left(strReturn, InStr(strReturn, Chr(0)) - 1)

 

End Function

 


Remarque : Dans la fonction de lecture on ajoute en option une valeur par défaut égale à 0. Cela permet d'avoir quand même une valeur même si le programme n'a pas su lire le fichier ini.

3. Le fichier ini

Il suffit de prendre un éditeur de texte quelconque, notepad par exemple.

Vous devez organiser votre fichier de cette manière :

[Section]

cle=valeur

Ici par exemple je vais créer 3 sections contenant chacune 2-3-7 clé ayant des valeurs différentes :

[MESSAGES]

MessageInfo = Super j'ai su lire mon fichier ini

Titre = Lecture / Ecriture fichier ini

[ANGLAIS]

mnu_Fichier = &File

mnu_Enrg = &Save

mnu_Imprim = &Print

[SOMMES]

Depense = 1000

Entree = 50

Sortie = 87

StockLimiteBas = 5

StockLimiteHaut = 12

Alerte = Attention la limite haute est atteinte

SoldeInitial = 7844630 €

 

Ce fichier il faut l'enregistrer en modifiant l'extension par .ini

 

 

4. Utilisation du fichier ini et des fonctions api

Ici pour notre exemple on va supposer que notre fichier ini a été enregistré dans le répertoire de l'application et que nous l'avons nommé « iniSetup ». Si vous enregistrer votre fichier ailleurs vous devez soit faire la recherche de ce fichier sur votre disque, soit le saisir en dur dans votre code. La deuxième option étant moins propre.

Pour utiliser le code placé dans le module vous devez utiliser les lignes suivantes :

-         Lecture

 

'-- Déclaration de variables

Dim chemin as string

Dim messageMsgBox as string

Dim titreMsgBox as string

 

'-- Initialisation des variables et appel des fonctions API

chemin = App.Path & "\inisetup.ini"

messageMsgBox  = LitDansFichierIni("MESSAGES", "MessageInfo", Chemin, "Erreur")

titreMsgBox  = LitDansFichierIni("MESSAGES", "Titre", Chemin, "Erreur")

           

            msgbox messageMsgBox,vbInformation,titreMsgBox

 

 

-         Ecriture 

'-- Déclaration de variables

Dim chemin as string

 

'-- Mise à jour du fichier ini

EcritDansFichierIni "SOMMES", "Sortie", 74, chemin

 

Vous pouvez vérifier en ouvrant votre fichier ini que la valeur de Sortie à bien été modifiée

Commentaires

Commentaire de sansouna1983 le 27/03/2009 10:11:35

tré simple mais tré compréhensible merci

Commentaire de hellangel777 le 27/03/2009 11:47:29

Le but étant de mettre à porté de tous l'utilisation des fichiers ini.
Si cela t'a aidé j'en suis ravie.
Merci

Commentaire de todac36 le 06/05/2009 21:41:59

Bonjour
j utilise des fichier ini sous xp aucun soucis
je les mets dans app.path
mais cela ne fonctionne pas sous vista
ou faut il les mettre ?
Merci

Commentaire de hellangel777 le 07/05/2009 10:17:43

app.path --> chemin de ton application


je comprends pas ta question. Peux tu reformuler?
Merci

Commentaire de VieuxClaude le 05/06/2009 00:41:34

INI est l'abréviation de "INItialisation". A l'origine ces fichiers n'étaient pas destinés au commun des mortels, mais seulement aux spécialistes de la création de logiciels qui l'utilisaient pour y inscrire les valeurs de démarrage de leur programme.

Lorsque tu inscrit une chaine de caractères dans une clé il est bien aussi d'y inscrire sa longueur plus 1 car VB n'a aucun moyen de connaitre cette valeur et pour relire ta chaine il te faudra la connaitre pour pouvoir déterminer la longueur à allouer au buffer. Comme les valeurs numériques se passent de cette
information, tu pourras donc retrouver la longueur de ta chaine sans problème.

Fais attention que, si en cours d'utilisation, tu vide la valeur d'une clé ( longueur de chaine nulle) le nom de cette chaine disparaitra, et si tu veux ensuite relire cette clé tu n'auras rien en retour d'où bug. Pour éviter ceci tu peux inscrire un caractère bidon dans la clé en attendant d'y mettre une nouvelle valeur. Ceci n'est valable que pour les chaines car les nombres on zéro comme valeur nulle.

Je te souhaite bien du courage pour la suite.

Commentaire de hellangel777 le 05/06/2009 09:32:05

Bonjour,

Merci pour ces précieuses précision.

Bon courage à toi...

Commentaire de almonze le 01/07/2009 10:53:39

merci pour le code

Commentaire de ptikrapo le 13/12/2009 19:30:22

Excellent !!!
Merci pour ces explications.
un petit détail pour les débutants comme moi, sous VB express le debugger change le nom du fichier ini lors du debuggage. au pire utilisez un autre dossier pour tester votre fichier ini.

Merci encore !!!!

Commentaire de podolis le 01/03/2010 23:44:30

Tuto très utile (il faut modifier un peu le code pour vb .net mais dans l ensemble sa vas)
merci

Commentaire de Datazoom le 05/04/2010 18:05:50

sa vas ??? Aurais tu oublié le dictionnaire ??? Tu n'as pas un Bescherelle qui traine ??
Je suis toujours extrêmement surpris pas les énormes fautes d'orthographe dans les forums...

Commentaire de hellangel777 le 05/04/2010 18:51:27

Bonjour

@Darazoom : Alors... Pouvez-vous m'expliquer l'intérêt de ce commentaire? Ne pouvez-vous pas vous adresser directement en mp à la personne concernée pour cette remarque? Maintenant je suis à l'écoute de tout commentaire utile sur le contenu de ce tutorial.

Merci

Commentaire de Janus006 le 12/05/2010 11:17:39

J'ai peur.

Commentaire de abdouelhaj le 01/08/2010 19:30:17

bonjour a tout
que doit en changer sur le code  pour vb.net

Commentaire de niblon le 07/09/2010 23:03:55

Si quelqu'un a le code pour vb.net car j'en aurais besoin pour mon application .Et etant un debutant je n'arrive pas a l'adapter pour vb.net .

Si une ame charitable passe par la :)
Merci d'avance
@+Niblon

Commentaire de lilj le 08/01/2011 07:56:20

Bonjour, super tutorial !! Il rend la gestion des fichiers trés simple.
Cependant, je suis sous visual basic 2010 et j'essaye tant bien que mal d'adapté le code en conséquence. ainsi, pourriez-vous m'expliquer à quoi fait référence "as Any" car VS 2010 me le souligne en bleu.

de plus la ligne "String(255, 0)" l'est aussi.

merci

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,078 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales