begin process at 2012 02 13 21:05:53
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Fichier / Disque

 > LIRE ET ECRIRE DANS UN FICHIER .INI

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



 Sources du même auteur

Source avec Zip Source avec une capture Source .NET (Dotnet) FAIRE UN PING (ICMP) EN VB 2005 (LE PLUS SIMPLEMENT DU MONDE...
IMPRIMER LE CONTENU D'UN RICHTEXTBOX
Source avec Zip Source avec une capture TESTEUR DE REGEX (REGULAR EXPRESSIONS)
Source avec Zip Source avec une capture FORCER LE REBOOT SOUS WINDOWS NT OU WINDOWS 2000 (REDÉMARRAG...
COMPTER LES MOTS DANS UNE CHAINE DE CARACTÈRE

 Sources de la même categorie

Source avec Zip Source .NET (Dotnet) MODIFIER LES EXTENSION DES FICHIERS par okosa
ROUTINE DIR RÉCURSIVE POUR OBTENIR LA LISTE DE TOUS LES FICH... par kerisolde
Source avec Zip Source avec une capture FILE,SECURITY,FICHIER par okosa
Source avec Zip Source avec une capture Source .NET (Dotnet) PATCHEUR DE FICHIER par tototh
Source avec Zip Source avec une capture LECTURE DES INFORMATIONS DES DISQUES COMPOSANT UN ENSEMBLE R... par jack

 Sources en rapport avec celle ci

Source avec Zip Source .NET (Dotnet) CLASSE READ/WRITE BIT À BIT DANS UN FICHIER À N'IMPORTE QUEL... par yvesyves
Source avec Zip Source avec une capture SAUVEGARDEZ LES SETTINGS DE VOS FORM EN UNE LIGNE DE CODE ! par violent_ken
Source avec Zip Source avec une capture LIRE/ECRIRE/SUPPRIMER/RECHERCHER DANS FICHIERS INI,TXT ... par Exploreur
Source avec Zip LECTURE DES.INI DANS DES LISTES BOX AVEC LE FICHIER INI PASS... par Steff
Source avec Zip COMPOSANT GINIREADER par gg00xiv

Commentaires et avis

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

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 !

Commentaire de youl46 le 08/04/2002 18:30:36

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

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" ??

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.

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...

Commentaire de jmongin le 23/03/2003 14:35:08

Merci bcp !!

Commentaire de bayhs le 31/03/2003 20:33:28

ça mérite 10/10

Merci !

Commentaire de alexx860 le 13/05/2003 13:29:01

plus ! 15/10 et merci :)

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

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 !

Commentaire de Pestouille le 19/06/2003 16:13:39

Merci pour le code !!! 9/10

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

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"

Commentaire de Snake77 le 12/11/2003 00:39:16

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

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

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

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

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

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

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

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 !

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

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.

Commentaire de spycollege le 27/01/2006 12:23:32

génial !
10/10

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

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

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

Commentaire de lurked le 08/01/2008 17:35:15 9/10

Bonne source, simple et fiable.

Merci à Imrahjel pour la convertion en .NET.

Commentaire de quentincabo le 25/02/2008 15:01:21 9/10

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

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

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

mets Strings.Left$

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

Commentaire de Minihisht le 19/09/2008 13:19:52

Merci pour le code, il est simple et clair.

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 !

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

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 Créer un fichier ini et lire et ecrire [ par tonyledragon ] Bonjour,voila je debute en vb.net et j'aimerez savoir comment on fait pour créer un fichier ini et le lire et l’écrire car c'est pas le même cod Lire/ecrire dans une feuille Excel [ par bgll11 ] Bonjour, Je cherche un code me permettant de lire et/ou ecrire dans une feuille Excel. Petite precision: je suis VRAIMENT debutant. Ce qui veut dire recuperer texte d'une textbox au demarage du programme [ par mecanox0911 ] Bonjour je suis à la recherche d'un code depuis un certain temps et je ne trouve pas. Je vous explique: Alors je voudrai que l'utilisateur puisse re recuperer texte d'une textbox au demarage du programme [ par mecanox0911 ] Bonjour je suis à la recherche d'un code depuis un certain temps et je ne trouve pas. Je vous explique: Alors je voudrai que l'utilisateur puisse re recuper les valeur textbox [ par mecanox0911 ] bonjour je suis bloquer sur un code depuis un certain temps [^^sad1] Enfète je voudrais que l'utilisateur entre un texte dans un textbox9 et que sa l Lire un fichier .ini qui possède pour chaque rubrique plsieurs clés identiques qui comprtent plusieurs éléments [ par bertchini ] Bonjour ou bonsoir à tous,Je me tourne de nouveau vers vous dans l'espoir que vous puissiez me guider vers la lumière.Voilà mon problême!Je travaille VB.Net Lire un fichier ini en sélectionnant que les rubriques [ par MagDix ] Bonjour à tous Je cherche un truc afin de pouvoir récupérer toutes les rubriques d'un fichier ini Par exemple j'ai un fichier ini qui ressemble à


Nos sponsors


Sondage...

Comparez les prix

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 : 4,165 sec (4)

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