LIRE/ECRIRE/SUPPRIMER DANS UN FICHIER INI GRÂCE AUX APIS WINDOWS
cs_Titant
Messages postés103Date d'inscriptionmardi 2 juillet 2002StatutMembreDernière intervention21 juillet 2008
-
13 juil. 2003 à 20:13
gmni
Messages postés91Date d'inscriptionmercredi 6 novembre 2002StatutMembreDernière intervention20 mars 2009
-
16 juin 2008 à 03:23
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
gmni
Messages postés91Date d'inscriptionmercredi 6 novembre 2002StatutMembreDernière intervention20 mars 2009 16 juin 2008 à 03:23
Merci!
freeman151248
Messages postés16Date d'inscriptionvendredi 19 mai 2006StatutMembreDernière intervention31 mars 2011 30 avril 2008 à 18:14
Merci pour ce code Trés utile, simple efficace!
ciao
threadom
Messages postés101Date d'inscriptionmardi 8 avril 2003StatutMembreDernière intervention 1 novembre 2007 11 oct. 2006 à 11:23
Simple, Efficace, toujours util.
On ce rapelle pas toujours avec exactitude les paramètres d'une fonction dans une api.
La un petit module que l'on rajoute et on peu ajouter, modifier, supprimer, l'intérieur d'un fichier ini.
Sans vouloir être méchant certaine personne disans "y marche même pas chez moi, c'est de la gr..." ferais mieux d'apprendre a programmer avant de mettre ce genre de commentaire.
Cependant il est regretable que ces fonctions ne gère pas les erreurs correctement et que les types de données ne correspondent pas a ceux de l'api qu'il utlise.
Par exemple
# 'Fonction pour écrire une valeur dans un fichier INI
# 'La section spécifiée est créée automatiquement si elle n'existe pas déjà
# Function INIWrite(Entete As String, Variable As String, Valeur As String, Optional Fichier As String) As String
# Fichier IIf(Fichier "", App.Path & "" & App.EXEName & ".ini", Fichier)
# INIWrite = WritePrivateProfileString(Entete, Variable, Valeur, Fichier)
# End Function
# 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
Il est regrettable que le type de donnée renvoyé est une String au lieu d'un Long, et il aurais peut etre été plus judicieux de mettre un booleen.
cs_gagou9
Messages postés126Date d'inscriptionvendredi 19 septembre 2003StatutMembreDernière intervention20 novembre 2007 2 mai 2006 à 23:38
salut skaleta !!!
je ovis que personne ne te reponds !
alors tu connais les fichiers ini, ils sont composés de section, de clés, et de valeurs.
exemple (le fichier s'appelle 'essai.ini' :
----------
[SECTION]
cle=valeur
----------
et bien avec ce prog, pour lire la valeur, faut faire :
-------------
Dim reponse as string
reponse = INIRead( "SECTION" , "cle" , "essai.ini" )
-------------
et reponse aura pour valeur "valeur".
t'as compris pour lire ?
pour ecrire c'est pareil :
rien = INIWrite( "SECTION, qui sera crée si existe pas", "clé", "valeur" , "essai.ini"
"rien" ne sert a rien, mais vu que c'est une fonction, ça renvoie une valeur, donc faut mettre qqch !
en tout cas moi j'utilise cette source des que j'ai des fichiers ini, donc merci Chrystalyst !!
salut !
Gagou
zebecasse
Messages postés4Date d'inscriptionjeudi 30 décembre 2004StatutMembreDernière intervention 8 février 2006 2 mai 2006 à 11:28
Simplement, merçi :) 10/10
Cro fort !
skaleta
Messages postés7Date d'inscriptiondimanche 23 octobre 2005StatutMembreDernière intervention21 novembre 2005 21 nov. 2005 à 21:10
Bonsoir
J'attend sans plus y croire aujourd'hui une réponse, merci tout de même........
wills77
Messages postés1Date d'inscriptionjeudi 25 août 2005StatutMembreDernière intervention21 novembre 2005 21 nov. 2005 à 01:03
tous good pour moi , c'est pile poil ce que je cherchais
elyote666
Messages postés30Date d'inscriptionlundi 17 mai 2004StatutMembreDernière intervention 4 octobre 2007 19 nov. 2005 à 23:43
Merci pour la fonction supprimer.
skaleta
Messages postés7Date d'inscriptiondimanche 23 octobre 2005StatutMembreDernière intervention21 novembre 2005 5 nov. 2005 à 22:55
Bonsoir moi aussi je débute
et je dois dire que c'est sans doute ce que je cherchais mais je ne sais pas quoi remplacer et ou.
Je voudrais juste faire le test sur une listbox
merci pour les info.................
cs_gagou9
Messages postés126Date d'inscriptionvendredi 19 septembre 2003StatutMembreDernière intervention20 novembre 2007 1 nov. 2005 à 16:40
ouai ouai j'avais bien compris que c'etait une erreur mais bon je debute donc on sait jamais !!!
voila merci quand meme !!!
salut
Chrystalyst
Messages postés14Date d'inscriptionjeudi 10 juillet 2003StatutMembreDernière intervention10 septembre 2003 31 oct. 2005 à 21:02
>> tu appelle la fonction INIWrite et tu met EcrireINI = machin...
arf, c'est juste une erreur!
au début j'avais donné des noms en français aux fonctions puis j'ai modifié pour le mettre sur le site et j'ai oublié de tout modifier, c'est tout
désolé
cs_gagou9
Messages postés126Date d'inscriptionvendredi 19 septembre 2003StatutMembreDernière intervention20 novembre 2007 31 oct. 2005 à 01:00
Salut !
ouai pour moi c'est parfait chui entrain de faire un gros truc ça va me servir !
09/10 car je comprend pas pourkoi quand j'appelle une fonction genre iniread je suis OBLIGÉ de faire un truc du genre :
...
rien = INIRead(machin...)
...
c'est assez chiant mais bon je m'en debrouille !
sinon pourkoi dans :
Function INIWrite(machin...) As String
Fichier IIf(Fichier "", App.Path & "" & App.EXEName & ".ini", Fichier)
EcrireINI = WritePrivateProfileString(Entete, Variable, Valeur, Fichier)
End Function
tu appelle la fonction INIWrite et tu met EcrireINI = machin...
je comprend pas !!
voila voila
merci !!
a+
ritchy01
Messages postés41Date d'inscriptionmardi 16 septembre 2003StatutMembreDernière intervention20 décembre 2009 12 août 2005 à 11:55
Super, je ne savais pas comment supprimer une entrée...Pas encore testé mais 10/10 pour le principe, c'est bien de penser aux débutants ! Merci Chrystalyst.
PS: darkteam, au lieu de critiquer bêtement, soit constructif et propose une correction du code !
Dkmatise
Messages postés22Date d'inscriptionlundi 6 juin 2005StatutMembreDernière intervention21 juillet 2005 17 juil. 2005 à 09:27
Super le code ! 10/10
cs_Sator2
Messages postés137Date d'inscriptionsamedi 11 septembre 2004StatutMembreDernière intervention10 septembre 2006 26 mai 2005 à 02:58
Visiblement ça passe chez certains et pas d'autre....
@+Sator 2
Nicopika
Messages postés10Date d'inscriptionsamedi 5 février 2005StatutMembreDernière intervention 1 mai 2006 5 févr. 2005 à 20:41
Ce code correspond exactement à ce que je voulais. 10/10
Merci Chrystalyst
joker888
Messages postés38Date d'inscriptionmardi 9 juillet 2002StatutMembreDernière intervention23 août 2005 21 mai 2004 à 19:26
MErci, je cherchait le moyen de gerer facilement les ini pour mon new prog....
tu sera dans mes greatz!! lol
thetoine59
Messages postés5Date d'inscriptionjeudi 27 mars 2003StatutMembreDernière intervention17 novembre 2004 6 mai 2004 à 14:32
Juste un petit commentaire pour saluer ce genre de source qui permette de se remettre les chose en tête et pour dire que je préfère largement ca, à la possibilité de faire un MsgBox à plusieurs lignes :)
olivierXIII
Messages postés50Date d'inscriptionlundi 21 avril 2003StatutMembreDernière intervention 4 août 2005 25 déc. 2003 à 23:25
Pile ce qui me fallait !
10/10 il y a tout ce qu'il faut.
cs_PROGRAMMIX
Messages postés1133Date d'inscriptionmercredi 2 octobre 2002StatutMembreDernière intervention24 juillet 20112 11 déc. 2003 à 20:15
>>> darkteam
C'est pas parce que cela ne marche pas chez toi que c'est de la grosse merde.
Faudrait voir à ne pas oublier les règles de courtoisie.
darkteam
Messages postés46Date d'inscriptionmardi 9 décembre 2003StatutMembreDernière intervention18 juin 2010 11 déc. 2003 à 10:25
y marche meme pas chez moi !
et en plus c'estde la grosse merde !!!
borton
Messages postés2Date d'inscriptionmardi 11 novembre 2003StatutMembreDernière intervention11 novembre 2003 11 nov. 2003 à 21:52
quelqu'un pourrait me dire c'est qu'est un identificateur? Parce que quand j'ai essayer d'exécuter le module ci-dessus, une erreur est survenue : identificateur attendue. Alors comme je ne sais pas ce qu'est un identificateur, je ne sais donc pas quoi faire. J'aurais besoin d'un petit coup de main. Je dois spécifier que je travaille sous Embedded visual basic. Je crois que l'erreur vient du fait que ce n'est pas visual basic "standard". Alors si quelqu'un s'y connait un peu, son aide serait grandement appréciée. Merci d'avance.
cs_PROGRAMMIX
Messages postés1133Date d'inscriptionmercredi 2 octobre 2002StatutMembreDernière intervention24 juillet 20112 6 nov. 2003 à 09:46
Effectivement, il y a beaucoup de sources à ce sujet sur le site, mais comme le signale Chrystalyst, elles ne sont pas nombreuses à aborder la manière de supprimer une valeur ou une section.
cs_Pat35
Messages postés59Date d'inscriptionmercredi 3 septembre 2003StatutMembreDernière intervention 5 décembre 2007 16 sept. 2003 à 15:01
C'est pas neuf, mais c'est propre et toujours pratique
Chrystalyst
Messages postés14Date d'inscriptionjeudi 10 juillet 2003StatutMembreDernière intervention10 septembre 2003 13 juil. 2003 à 22:34
je sais que c'était déjà sur le site, ms aucune source ne permettait de supprimer des valeurs... c'était le important
cs_Urgo
Messages postés780Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention16 avril 20091 13 juil. 2003 à 22:31
pareil que titant
cs_Titant
Messages postés103Date d'inscriptionmardi 2 juillet 2002StatutMembreDernière intervention21 juillet 2008 13 juil. 2003 à 20:13
16 juin 2008 à 03:23
30 avril 2008 à 18:14
ciao
11 oct. 2006 à 11:23
On ce rapelle pas toujours avec exactitude les paramètres d'une fonction dans une api.
La un petit module que l'on rajoute et on peu ajouter, modifier, supprimer, l'intérieur d'un fichier ini.
Sans vouloir être méchant certaine personne disans "y marche même pas chez moi, c'est de la gr..." ferais mieux d'apprendre a programmer avant de mettre ce genre de commentaire.
Cependant il est regretable que ces fonctions ne gère pas les erreurs correctement et que les types de données ne correspondent pas a ceux de l'api qu'il utlise.
Par exemple
# 'Fonction pour écrire une valeur dans un fichier INI
# 'La section spécifiée est créée automatiquement si elle n'existe pas déjà
# Function INIWrite(Entete As String, Variable As String, Valeur As String, Optional Fichier As String) As String
# Fichier IIf(Fichier "", App.Path & "" & App.EXEName & ".ini", Fichier)
# INIWrite = WritePrivateProfileString(Entete, Variable, Valeur, Fichier)
# End Function
# 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
Il est regrettable que le type de donnée renvoyé est une String au lieu d'un Long, et il aurais peut etre été plus judicieux de mettre un booleen.
2 mai 2006 à 23:38
je ovis que personne ne te reponds !
alors tu connais les fichiers ini, ils sont composés de section, de clés, et de valeurs.
exemple (le fichier s'appelle 'essai.ini' :
----------
[SECTION]
cle=valeur
----------
et bien avec ce prog, pour lire la valeur, faut faire :
-------------
Dim reponse as string
reponse = INIRead( "SECTION" , "cle" , "essai.ini" )
-------------
et reponse aura pour valeur "valeur".
t'as compris pour lire ?
pour ecrire c'est pareil :
rien = INIWrite( "SECTION, qui sera crée si existe pas", "clé", "valeur" , "essai.ini"
"rien" ne sert a rien, mais vu que c'est une fonction, ça renvoie une valeur, donc faut mettre qqch !
pour supprimer rien de plus simple :
1) supprimer une clé
rien = INIDelete( "SECTION" , "cle" , "essai.ini")
2) supprimer une section :
rien = INIDeleteSection( "SECTION" , "essai.ini")
voila voila !!
j'espere que t'a compris !!
en tout cas moi j'utilise cette source des que j'ai des fichiers ini, donc merci Chrystalyst !!
salut !
Gagou
2 mai 2006 à 11:28
Cro fort !
21 nov. 2005 à 21:10
J'attend sans plus y croire aujourd'hui une réponse, merci tout de même........
21 nov. 2005 à 01:03
19 nov. 2005 à 23:43
5 nov. 2005 à 22:55
et je dois dire que c'est sans doute ce que je cherchais mais je ne sais pas quoi remplacer et ou.
Je voudrais juste faire le test sur une listbox
merci pour les info.................
1 nov. 2005 à 16:40
voila merci quand meme !!!
salut
31 oct. 2005 à 21:02
arf, c'est juste une erreur!
au début j'avais donné des noms en français aux fonctions puis j'ai modifié pour le mettre sur le site et j'ai oublié de tout modifier, c'est tout
désolé
31 oct. 2005 à 01:00
ouai pour moi c'est parfait chui entrain de faire un gros truc ça va me servir !
09/10 car je comprend pas pourkoi quand j'appelle une fonction genre iniread je suis OBLIGÉ de faire un truc du genre :
...
rien = INIRead(machin...)
...
c'est assez chiant mais bon je m'en debrouille !
sinon pourkoi dans :
Function INIWrite(machin...) As String
Fichier IIf(Fichier "", App.Path & "" & App.EXEName & ".ini", Fichier)
EcrireINI = WritePrivateProfileString(Entete, Variable, Valeur, Fichier)
End Function
tu appelle la fonction INIWrite et tu met EcrireINI = machin...
je comprend pas !!
voila voila
merci !!
a+
12 août 2005 à 11:55
PS: darkteam, au lieu de critiquer bêtement, soit constructif et propose une correction du code !
17 juil. 2005 à 09:27
26 mai 2005 à 02:58
@+Sator 2
5 févr. 2005 à 20:41
Merci Chrystalyst
21 mai 2004 à 19:26
tu sera dans mes greatz!! lol
6 mai 2004 à 14:32
25 déc. 2003 à 23:25
10/10 il y a tout ce qu'il faut.
11 déc. 2003 à 20:15
C'est pas parce que cela ne marche pas chez toi que c'est de la grosse merde.
Faudrait voir à ne pas oublier les règles de courtoisie.
11 déc. 2003 à 10:25
et en plus c'estde la grosse merde !!!
11 nov. 2003 à 21:52
6 nov. 2003 à 09:46
16 sept. 2003 à 15:01
13 juil. 2003 à 22:34
13 juil. 2003 à 22:31
13 juil. 2003 à 20:13