LIRE/ECRIRE/SUPPRIMER DANS UN FICHIER INI GRÂCE AUX APIS WINDOWS

cs_Titant Messages postés 103 Date d'inscription mardi 2 juillet 2002 Statut Membre Dernière intervention 21 juillet 2008 - 13 juil. 2003 à 20:13
gmni Messages postés 91 Date d'inscription mercredi 6 novembre 2002 Statut Membre Dernière intervention 20 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.

https://codes-sources.commentcamarche.net/source/7885-lire-ecrire-supprimer-dans-un-fichier-ini-grace-aux-apis-windows

gmni Messages postés 91 Date d'inscription mercredi 6 novembre 2002 Statut Membre Dernière intervention 20 mars 2009
16 juin 2008 à 03:23
Merci!
freeman151248 Messages postés 16 Date d'inscription vendredi 19 mai 2006 Statut Membre Dernière intervention 31 mars 2011
30 avril 2008 à 18:14
Merci pour ce code Trés utile, simple efficace!

ciao
threadom Messages postés 101 Date d'inscription mardi 8 avril 2003 Statut Membre Derniè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és 126 Date d'inscription vendredi 19 septembre 2003 Statut Membre Dernière intervention 20 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 !

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
zebecasse Messages postés 4 Date d'inscription jeudi 30 décembre 2004 Statut Membre Dernière intervention 8 février 2006
2 mai 2006 à 11:28
Simplement, merçi :) 10/10
Cro fort !
skaleta Messages postés 7 Date d'inscription dimanche 23 octobre 2005 Statut Membre Dernière intervention 21 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és 1 Date d'inscription jeudi 25 août 2005 Statut Membre Dernière intervention 21 novembre 2005
21 nov. 2005 à 01:03
tous good pour moi , c'est pile poil ce que je cherchais
elyote666 Messages postés 30 Date d'inscription lundi 17 mai 2004 Statut Membre Dernière intervention 4 octobre 2007
19 nov. 2005 à 23:43
Merci pour la fonction supprimer.
skaleta Messages postés 7 Date d'inscription dimanche 23 octobre 2005 Statut Membre Dernière intervention 21 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és 126 Date d'inscription vendredi 19 septembre 2003 Statut Membre Dernière intervention 20 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és 14 Date d'inscription jeudi 10 juillet 2003 Statut Membre Dernière intervention 10 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és 126 Date d'inscription vendredi 19 septembre 2003 Statut Membre Dernière intervention 20 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és 41 Date d'inscription mardi 16 septembre 2003 Statut Membre Dernière intervention 20 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és 22 Date d'inscription lundi 6 juin 2005 Statut Membre Dernière intervention 21 juillet 2005
17 juil. 2005 à 09:27
Super le code ! 10/10
cs_Sator2 Messages postés 137 Date d'inscription samedi 11 septembre 2004 Statut Membre Dernière intervention 10 septembre 2006
26 mai 2005 à 02:58
Visiblement ça passe chez certains et pas d'autre....
@+Sator 2
Nicopika Messages postés 10 Date d'inscription samedi 5 février 2005 Statut Membre Derniè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és 38 Date d'inscription mardi 9 juillet 2002 Statut Membre Dernière intervention 23 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és 5 Date d'inscription jeudi 27 mars 2003 Statut Membre Dernière intervention 17 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és 50 Date d'inscription lundi 21 avril 2003 Statut Membre Derniè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és 1133 Date d'inscription mercredi 2 octobre 2002 Statut Membre Dernière intervention 24 juillet 2011 2
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és 46 Date d'inscription mardi 9 décembre 2003 Statut Membre Dernière intervention 18 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és 2 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 11 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és 1133 Date d'inscription mercredi 2 octobre 2002 Statut Membre Dernière intervention 24 juillet 2011 2
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és 59 Date d'inscription mercredi 3 septembre 2003 Statut Membre Derniè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és 14 Date d'inscription jeudi 10 juillet 2003 Statut Membre Dernière intervention 10 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és 780 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 16 avril 2009 1
13 juil. 2003 à 22:31
pareil que titant
cs_Titant Messages postés 103 Date d'inscription mardi 2 juillet 2002 Statut Membre Dernière intervention 21 juillet 2008
13 juil. 2003 à 20:13
deja vue et revue enfin bon...
Rejoignez-nous