begin process at 2008 05 12 02:54:42
1 170 129 membres
34 nouveaux aujourd'hui
13 956 membres club

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")
  • 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$

Ajouter un commentaire

Appels d'offres

Pub



CalendriCode

Mai 2008
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

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

Boutique

Boutique de goodies CodeS-SourceS