Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

LIRE ET ECRIRE DANS UN FICHIER .INI


Information sur la source



Description

Comment Puis-je Ecrire et Lire dans Un Fichier .ini ?

Mettez ce Code dans Votre Module :
 

Source

  • Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
  • Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long
  • Function LireINI(Entete As String, Variable As String) As String
  • Dim Retour As String
  • Fichier = App.Path & "\" & App.EXEName & ".ini"
  • Retour = String(255, Chr(0))
  • LireINI = Left$(Retour, GetPrivateProfileString(Entete, ByVal Variable, "", Retour, Len(Retour), Fichier))
  • End Function
  • Function EcrireINI(Entete As String, Variable As String, Valeur As String) As String
  • Fichier = App.Path & "\" & App.EXEName & ".ini"
  • WriteINI = WritePrivateProfileString(Entete, Variable, Valeur, Fichier)
  • End Function
  • ' Pour l'executer ex :
  • EcrireINI("MonEntete", "MaVariable", "MaValeur")
  • LireINI("MonEntete", "MaVariable")
Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long

Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long

Function LireINI(Entete As String, Variable As String) As String
    Dim Retour As String
    Fichier = App.Path & "\" & App.EXEName & ".ini"
    Retour = String(255, Chr(0))
    LireINI = Left$(Retour, GetPrivateProfileString(Entete, ByVal Variable, "", Retour, Len(Retour), Fichier))
End Function

Function EcrireINI(Entete As String, Variable As String, Valeur As String) As String
    Fichier = App.Path & "\" & App.EXEName & ".ini"
    WriteINI = WritePrivateProfileString(Entete, Variable, Valeur, Fichier)
End Function

' Pour l'executer ex :
EcrireINI("MonEntete", "MaVariable", "MaValeur")
LireINI("MonEntete", "MaVariable")

Commentaires et avis

signaler à un administrateur
Commentaire de muskafr88 le 14/01/2002 20:03:42

Salut

Quelqu'un peut me dire comment retourner le LireINI "Entete", "variable" dans une variable ?

J'ai essayer de plusieurs facons, sans jamais reussir, merci de me donner un petit exemple.

muskafr

signaler à un administrateur
Commentaire de Kholera le 18/01/2002 15:24:52

Reponse pour muskafr88 : déclare une variable et affecte lui ce que te retourne la fonction, comme suit...

Dim strTemp as String
    strTemp = LireINI("MonEntete", "MaVariable")

OU au Form_Load() de ton prog ou d'une page affecte le résultat directement à une textBox par exemple :

    text1.text = LireINI("MonEntete", "MaVariable")

Voilà, amuse toi bien !

signaler à un administrateur
Commentaire de youl46 le 08/04/2002 18:30:36

Ce n'est pas EcrireINI("MonEntete", "MaVariable", "MaValeur") mais EcrireINI "MonEntete", "MaVariable", "MaValeur"

signaler à un administrateur
Commentaire de fly le 07/09/2002 14:01:33

Bonjour,
Ch'suis nouveau sur ce site sympas.
Y'a déjà un pb, est ce que quelqu'un peut m'expliquer l'intérêt d'avoir le nom de la variable retourné par LireINI "MonEntete", "MaVariable" plutôt que sa valeur ?
Ce qui m'interesserais sera de pouvoir récupérer la valeur de cette variable après l'avoir écrite avec EcrireINI "MonEntete", "MaVariable", "MaValeur" ??

signaler à un administrateur
Commentaire de warreng69 le 08/12/2002 19:22:05

svp est ce que kelk un possederai une source avec une fonction de lecture d'un fichier ini avec seulement le nom du fichier en parametres.
merci
et je souhaiterai egalement savoir comment le fichier ini peut etre lu (chargé) par une application.

signaler à un administrateur
Commentaire de Jin le 05/01/2003 16:59:28

Franchement, çà pête.
C'est rapide, efficace et utile, et çà remplace 2 pages de mon code...

signaler à un administrateur
Commentaire de jmongin le 23/03/2003 14:35:08

Merci bcp !!

signaler à un administrateur
Commentaire de bayhs le 31/03/2003 20:33:28

ça mérite 10/10

Merci !

signaler à un administrateur
Commentaire de alexx860 le 13/05/2003 13:29:01

plus ! 15/10 et merci :)

signaler à un administrateur
Commentaire de Snake77 le 08/06/2003 20:35:44

J' avou que ce code m' a bien servit quand j avais vb6 mais est ce que quelqu un sait comment l' adapter a vb.net??? merci d' avance

signaler à un administrateur
Commentaire de z980x le 09/06/2003 20:47:35

Excellent ! Mais comme dit youl46, il vaut mieux mettre:

EcrireINI "MonEntete", "MaVariable", "MaValeur"

Sauf quand tu veux LIRE que deux valeurs, il faut mettre les parentheses.

Sinon je met 10/10 !

signaler à un administrateur
Commentaire de Pestouille le 19/06/2003 16:13:39

Merci pour le code !!! 9/10

signaler à un administrateur
Commentaire de Ssybacorp le 05/10/2003 21:03:08

Ben, je pense comme les autres le petit code extra simple:
qui sauve la vie en 2 minutes !
Merci

signaler à un administrateur
Commentaire de borton le 11/11/2003 20:22:12

Moi ça me dit : compile error : fin d'instruction attendue
Quelqu'un a eu la même erreur??
Après avoir eu cette erreur, le cursor se place à cet endroit :

"Open Nom_Fichier For Binary Access Read As #1"

signaler à un administrateur
Commentaire de Snake77 le 12/11/2003 00:39:16

Non j ai pas eu d erreur avec vb studio 6.

signaler à un administrateur
Commentaire de vbkleugg le 01/08/2004 13:16:59

10/10 ! C'est parfait, simple rapide et efficace, ce que je cherchais, merci ;op

signaler à un administrateur
Commentaire de danielgrd le 30/10/2004 16:32:18

J'ai une question:

Comment je pourrais faire cela: (EXEMPLE)

(SI LA VARIABLE N'EXISTE PAS, FAIRE UNE ACTION)

Il faudrait remplacer 'RIEN' par quoi????

--------------------------------------------------------------------------
If LireINI("Ligne Un Entete", "NomVariable") = 'RIEN'  Then
MsgBox "1"
End If
--------------------------------------------------------------------------



Merci

signaler à un administrateur
Commentaire de danielgrd le 30/10/2004 16:36:44

Hop! Et bien j'ai trouvé la réponse à ma question moi-même! Je n'ai que rejouté un On Error Goto ... et ca marche.

Mais je serais quand même curieux de savoir si il y aurait vraiment quelque chose  à mettre à la place du 'RIEN' et qui ferait la même chose.

Donc, vous pouvez quand même essayer de répondre a la question...

MErci

signaler à un administrateur
Commentaire de Shendoo le 01/01/2005 16:56:22

sa c'est good,  bon travail a toi ;) clair net et précis,     je dis Bravo clap clap clap !   :D

signaler à un administrateur
Commentaire de dionysos6868 le 04/01/2005 18:02:14

Merci pour le travail j'ai néantmoin une question.

Comment puis je savoir le nombre et le nom des varaible pour une entete ?????

Merci

signaler à un administrateur
Commentaire de zekinan le 13/04/2005 16:32:12

bonjour a tous,
je n'arrive pas a faire marché ce code. J'ai modifié le nom du fichier .ini mais rien à faire.
Dans le message que je renvoie, toujours vide !
au secours !

zékinan

signaler à un administrateur
Commentaire de ntm113 le 09/10/2005 17:59:02

Le prog n'est pas totalement propre :

Function EcrireINI(Entete As String, Variable As String, Valeur As String) As String
    Fichier = App.Path & "\" & App.EXEName & ".ini"
    WriteINI = WritePrivateProfileString(Entete, Variable, Valeur, Fichier)
End Function

Le WriteINI il sert à rien et il vient de nulle part et çà n'a pas de sens de déclarer la fonction As String.

Je ne met qu'un 8/10 pour la peine !

signaler à un administrateur
Commentaire de tariktarik le 29/11/2005 10:19:09

jarive pas a lire le fchier svp si qlq un exmple comple
merci d'avance

signaler à un administrateur
Commentaire de Imrahjel le 29/12/2005 11:51:21

Bonjour,
voici une adaptation pour vb.NET:
Copier entre les lignes d'etoiles et coller dans un module
Les appels aux fonctions se font en passant les variables entre parenthèses, séparées par des virgules.

'******** commencer à copier dessous
    Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Short, ByVal lpFileName As String) As Long
    Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpString As String, ByVal lpFileName As String) As Long

    Function LireINI(ByVal pEntete As String, ByVal pVariable As String) As String
        Dim l_szRetour As String
        Dim l_lRetour As Long
        Dim l_szFichier As String
        l_szFichier = Application.ExecutablePath.Substring(0, Application.ExecutablePath.LastIndexOf("\"c)) & "\config.ini"
        If Dir(l_szFichier) = "" Then
            MsgBox("Fichier introuvable")
        Else
            l_szRetour = Space$(255)
            l_lRetour = GetPrivateProfileString(pEntete, pVariable, "Error", l_szRetour, 255, l_szFichier)
            LireINI = Left$(l_szRetour, l_lRetour)
        End If
    End Function

    Function EcrireINI(ByVal pEntete As String, ByVal pVariable As String, ByVal pValeur As String) As Long
        ' la fonction retourne 0 (zéro) si elle échoue
        ' la fonction retourne autre chose si elle réussit
        Dim l_szFichier As String
        l_szFichier = Application.ExecutablePath.Substring(0, Application.ExecutablePath.LastIndexOf("\"c)) & "\config.ini"
        EcrireINI = WritePrivateProfileString(pEntete, pVariable, pValeur, l_szFichier)
    End Function
'******** arrêter de copier dessus

En espérant avoir aider ceux qui passent sous .NET
Bonne année à tous,
Imrahjel.

signaler à un administrateur
Commentaire de spycollege le 27/01/2006 12:23:32

génial !
10/10

signaler à un administrateur
Commentaire de diablamanshadow le 15/08/2006 07:46:54

moi j'ai lu dans les com qu'on disais que pour lire une valeur (se qui est peut probable au vu que le bu d'un ini ses un fichier de config enfin moi perso fichier de config ses plusieur valeur ^^) il fallais pas les parenthese et quand on dois en lire plusieur comme le dit z980x la il faut mettre les parenthese :s

donc me demandais un peu ca si on pouvais plus me l'approfondir se serais sympa ^^

disons que j'ai deux entetes avec chacune 2 variables comme je fais pour lire la premiere variable de la premiere entete et mettre sa valeur dans text1 puis mettre la deuxieme valeur de la deuxieme variable de la premiere entete dans text2 puis premiere variable de la deuxieme entete text3 et pour la deuxieme valeur de la deuxiee variable de la deuxieme entete mettre en text4 siouplait ^^

car si je met a la suite 4 lireini bah je recup a la fin que la derniere valeur ou alors faut que je dise lireini puis premiere valeur premiere variable ensuite a la ligne stock sa dans text1 genre

dim E1V1 , E1V2, E2V1, E2V2 as string
E1V1 = LireINI "Entete1", "Variable1"
text1.text = E1V1
E1V2 = LireINI "Entete1", "Variable2"
text2.text = E1V1
E2V1 = LireINI "Entete2", "Variable1"
text3.text = E1V1
E2V2 = LireINI "Entete2", "Variable2"
text4.text = E1V1

il faudrais un truc du genre ?
ou y a t'il un moyen plus simple avec le system de parenthese ? ^^

merci d'avance
Diablaman

signaler à un administrateur
Commentaire de Vinsaille le 13/06/2007 15:54:08

Bonjour, tres bon code merci à toi, j'ai cependant un probleme, je bosse sous visual studio 2005 pour faire une petite appli en me servant de windows forms. Impossible de déclarer la fonction GetPrivateProfileString, ca me met une erreur au niveau du mot " Declare " :

Erreur 1 Mot clé non valide en tant qu'identificateur.

Ma déclaration je la fait comme ci dessous :

Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long


Merci de m'aider je bloque...
Vincent

signaler à un administrateur
Commentaire de zoubi57 le 10/08/2007 20:51:17

Pas mal...
Pour ceux qui cherche encore comment supprimer une clé du fichier, il suffit d'écrire cette clé avec une valeur nulle.
N.B. Les fichier n'ont pas besoin d'être en . INI. Ça marche aussi avec les .TXT, .REG, etc...

Private Declare Function WritePrivateProfileString _ Lib "kernel32" Alias "WritePrivateProfileStringA" ( _
  ByVal lpApplicationName As String, _
  ByVal lpKeyName As Any, _
  ByVal lpString As Any, _
  ByVal lpFileName As String) _
As Long

' Fonction à ajouter :
Sub DetruitVariableINI( _
  Entete As String, _
  Variable As String, _
  Fichier as strig)

  if WritePrivateProfileString _
  (Entete, Variable, "", Fichier) = 0 then
  MsgBox "Erreur lors de l'écriture"
End Function

private Fichier as string

' Pour l'executer ex :

Fichier = App.Path & "\" & App.EXEName & ".txt"

'Ajouter Fichier dans la fonction d'origine EcrireINI
'et la tranformaer en sub avec un teste d'erreur
'WritePrivateProfileString retourne 0 si problème ecriture
EcrireINI("MonEntete", "MaVariable", "MaValeur",Fichier)

DetruitVariableINI "MonEntete", "MaVariable", Fichier

signaler à un administrateur
Commentaire de lurked le 08/01/2008 17:35:15 9/10

Bonne source, simple et fiable.

Merci à Imrahjel pour la convertion en .NET.

signaler à un administrateur
Commentaire de quentincabo le 25/02/2008 15:01:21 9/10

Merci à Nix et lmrahjel pour ce bout de code bien pratique.

signaler à un administrateur
Commentaire de kazylax33 le 12/03/2008 23:42:34

Bonjour

chez moi ca me dit

Erreur 2 'Public Property Left() As Integer' n'a aucun paramètre et son type de retour ne peut pas être indexé.

ca bug ici
LireINI = Left$(l_szRetour, l_lRetour)

avec le Left$

savez vous comment faire ?
Merci

signaler à un administrateur
Commentaire de Renfield le 13/03/2008 09:16:03 administrateur CS

mets Strings.Left$

signaler à un administrateur
Commentaire de jon51 le 28/07/2008 13:58:20

bonjour à tous et merci pour ce code.
j'ai un petit problème avec le dernier post.
vous avez dit de remplacer

LireINI = Left$(l_szRetour, l_lRetour) par LireINI = Strings.Left$(l_szRetour, l_lRetour)

mais il me met l'avertissement suivant:
il me met qu'une eception de reference null peut se produire au moment de l'execution.

auriez vous une idée
merci
jon51

signaler à un administrateur
Commentaire de Minihisht le 19/09/2008 13:19:52

Merci pour le code, il est simple et clair.

signaler à un administrateur
Commentaire de themuton le 10/02/2009 18:04:29

Merci Imrahjel pour ton code VB.NET,
J'utilise VB.NET 2003, mais ça foire, ma variable l_lRetour prend une valeur énorme : 2251799813685264
ce qui me donne une exception :

System.OverflowException: Arithmetic operation resulted in an overflow.

à la ligne suivante : LireINI = Left$(l_szRetour, l_lRetour)

Auriez-vous une solution ??
Merci d'avance !

signaler à un administrateur
Commentaire de chasseurdedemon le 17/06/2009 18:49:09

bonjour,
merci pour le code, j'utilise vb.net
j'ai une erreur ici : LireINI = Strings.Left$(l_szRetour, l_lRetour)
l'erreur est sur l_lRetour , il me dit que Option Strict On interdit les convertions implicites de 'long' en 'integer'

quelqu'un à une solution ?

je début en vb.net

merci

signaler à un administrateur
Commentaire de Renfield le 18/06/2009 06:36:52 administrateur CS

OK,

Alors déjà, le code proposé par Imrahjel est du .Net plus que bancal (Strings.Left, Dir ?????)

Ajoutons a cela des déclarations d'APIs non adaptées à .Net, et vous aurez toutes les peines du monde a faire tourner ce code convenablement.

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Comment lire et ecrire dans .ini [ par Gestmed ] Je sais que ma question est stupide ?Merci d'y rpondre quand mmeStef comment ecrire/lire ds un fichier ini [ par stefmarillion ] Je suis un (gros) novice en vb et jaimerais savoir la commande pour ecrire lire ds un .ini et aussi ds un .txt afin de pouvoir transmettre des donnée lire,ecrire,rechercher et supprimer des lingne dans un fichier ini [ par tonprofde_math ] slt je suis un débutant de chez débutant .et je voudrais savoir comment je peux faire pour recherché une info dans un fichier ini ,modi base de donnée ????? [ par jbbordas87 ] bonjours a tous, j'ai besoin d'un petit renseignement: mon future programms doit etre capable de lire, ecrire, et verifier un base de donner access. M .txt : Ouvrir / lire /modifier / ecrire / ... [ par Richard92 ] Salut,je vais passer pour un gros débutant mais bon.Voilà,je voudrais savoir comment on ouvre un fichier pour lire puis pour écrire &#2 lire et ecrire sur port parallele [ par haske ] Bonjour,je suis sur un projet qui utlise le port parallele.Je dois pouvoir lire et écrire des données sur le port .J'ai touvé un code u Resources resx lire ecrire [ par renocmoa ] Bonjour,je voudrais lire ecrire (des images) dans un fichier .resx mais j'ai plusieurs question :Pour ecrire j'utilise la fonction AddResources de  Re enregistrer un mot de passe et le lire en fichier .ini [ par culie3 ] Bonjour, voila je voudrais savoir quel code je dois utiliser pour stocker un mot de passe (crypter) dans un fichier .ini et le lire pour valider le mo Problem avec GetPrivateProfilestring [ par chrispb56 ] Voici mon probleme Dans mon programe , quand je click sur Recuperation du fichier data.ini , il prend pas la bonne valeur.If optPieds.Value = True The lire/écrier fichier ini en VBS [ par chilansky ] Bonjour,J'ai trouvé de nombreux exemple pour écrire/lire dans fichier .iniMais malgré tout mes test/recherche, je n'en ai trouvé aucun qui fonctione e


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,562 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.