daniellapointe01
Messages postés8Date d'inscriptionmercredi 27 août 2003StatutMembreDernière intervention27 octobre 2003
-
1 oct. 2003 à 21:16
_DoOmy_
Messages postés15Date d'inscriptionsamedi 19 novembre 2005StatutMembreDernière intervention17 septembre 2006
-
2 avril 2006 à 20:37
Bonjour.
J'utilise l'écriture et la lecture dans les fichiers INI.
J'ai un fichier 02.ini qui enregistre les options choisies à partir de checkbox.
Je vous laisse ci-dessous un extrait du code lors de l'appuis sur le bouton Appliquer :
If Option01 = Check1 Then
Else 'seulement si on a modifié des options
Open "./ini/02.ini" For Input As #5 'on lit le fichier
For b = 1 To 1
Input #5, Fichier01
Next
For b = 2 To 2
Input #5, Fichier08
Next
For b = 3 To 3
Input #5, Fichier09
Next
For b = 4 To 4
Input #5, Fichier10
Next
For b = 5 To 5
Input #5, Fichier11
Next
For b = 6 To 6
Input #5, Fichier12
Next
For b = 7 To 7
Input #5, Fichier13
Next
For b = 8 To 8
Input #5, Fichier14
Next
For b = 9 To 9
Input #5, Fichier15
Next
Close #5
Open "./ini/02.ini" For Output As #6 'on refait le fichier
For b = 0 To 0
Print #6, Check1.Value
Next
For b = 1 To 1
Print #6, Fichier01
Next
For b = 2 To 2
Print #6, Fichier08
Next
For b = 3 To 3
Print #6, Fichier09
Next
For b = 4 To 4
Print #6, Fichier10
Next
For b = 5 To 5
Print #6, Fichier11
Next
For b = 6 To 6
Print #6, Fichier12
Next
For b = 7 To 7
Print #6, Fichier13
Next
For b = 8 To 8
Print #6, Fichier14
Next
For b = 9 To 9
Print #6, Fichier15
Next
Close #6
Option01 = Check1.Value
Options = Options + 1 'Gestion du pluriel
End If
Ce même code est reproduit pour chaque checkbox.
Il y a 10 lignes dans le fichier 02.ini.
Le code ne fonctionne très mal, surtout à cause de certaines erreurs lors de l'enregistrement, et j'ai vérifié et je n'ai rien trouvé.
N'y a-t-il pas moyen de faire ça plus court et plus rapidement ?
pcpunch
Messages postés1243Date d'inscriptionmardi 7 mai 2002StatutMembreDernière intervention18 février 20195 2 oct. 2003 à 01:47
c'est pas un fichier ini ca!!!
c un fichier tous court
les fichier ini ont une entete c plus facile a gerer genre :
[Couleur]
voiture=bleue
slip=rouge
voila une fonction pour t'aider a lire et ecrire dans un fichier ini :
'dans un module
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
voila apres c pas compliquer :
pour ecrire genre dans la section couleur, la couleur de la variable voiture:
EcrireINI "Couleur", "voiture", "rouge"
pour la lire :
Couleur_Voiture = LireINI("couleur", "voiture")
Voila!!! c plus claire, plus rapide, plus facile a gerer, et plus pro surtout!!!!
Tu peu entrer autant de section que tu veu, et autant de variable dans la section!!!!!
Wrong number or argument or invalid property assignment
Bon cela veut dire qu'il y a une erreur. voici mon module :
Option Explicit
Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName$, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName$) As Long
Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpdirectory As String, ByVal nShowCmd As Long) As Long
Declare Function mciExecute Lib "winmm.dll" (ByVal lpstrCommand As String) As Long
Declare Function WritePrivateProfileSection Lib "kernel32" Alias "WritePrivateProfileSectionA" (ByVal lpAppName As String, ByVal lpString As String, ByVal lpFileName As String) As Long
Declare Function GetPrivateProfileSection Lib "kernel32" Alias "GetPrivateProfileSectionA" (ByVal lpAppName As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String)
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
Public Sub JouerSon(Fichier As String)
mciExecute ("play " & Fichier)
End Sub
Public Function FileExists(stFichier As String) As Boolean
FileExists = (Dir$(stFichier, vbHidden Or vbReadOnly Or vbSystem) <> vbNullString)
End Function
Ce dernier permet de vérifier l'existance d'un fichier ou d'un dossier, de jouer un son et j'ai finalement ajouté la fonction d'écriture/lecture de fichiers INI.
Merci d'Avance de m'Expliquer la raison de cette erreur.
daniellapointe01
Messages postés8Date d'inscriptionmercredi 27 août 2003StatutMembreDernière intervention27 octobre 2003 3 oct. 2003 à 00:04
et où indique-t-on dans quel fichier il doit écrire et lire ? il n'est pas décodeur, il ne fera pas une recherche pour moi, il faut lui indiquer, non ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
pcpunch
Messages postés1243Date d'inscriptionmardi 7 mai 2002StatutMembreDernière intervention18 février 20195 3 oct. 2003 à 02:19
et ben non il faut pas de decodeur lol!!!
Si tu avauit regarder les 2 fonctions d'ecriture et de lecture ini, tu aurais vu que le fichier est stipuler
app.path & "" app.exename & ".ini"
ca veu dire qu'il ouvre par defaut le fichier de ton soft.ini qui se situe dans le dossier de ton executable.
En bref si ton projet se trouve dans c:\mon soft\projet1.vbp
alos le fichier ini sera "c:\mon soft\projet1.ini"
Si tu compile le soft dans "c:\program files\mon soft\soft.exe"
l'ini sera "c:\program files\mon soft\soft.ini"
Mais si tu veu tu peu modifier tous ca et mettre ton ini ou tu veu et l appeler comme tu veu!!!
Enfin voila!!
Ps: je cherche qq betatesteur (c'est juste pour tester le prog et faire un rapport des eventuelle bug et difficulté rencontré...) pour mon soft!!! Si le coeur t'en dit, c'est un soft pour creer des galleries de photo html..
daniellapointe01
Messages postés8Date d'inscriptionmercredi 27 août 2003StatutMembreDernière intervention27 octobre 2003 3 oct. 2003 à 02:43
Cela m'intéresserait peut-être de t'aider, en guise de remerciment de ton aide. Mais pas en ce moment, je dois quitter, je n'ai même pas le temps de retester ton code.
Je ferai plutard et je te recontacterai sur ce forum.
pegasustek
Messages postés10Date d'inscriptionjeudi 20 janvier 2005StatutMembreDernière intervention20 avril 2008 13 juil. 2005 à 12:29
J'ai juste un souci avec le code pcpunch. la définition de la variable en "Any" n'est pas reconnu. Est-ce un Pb de version et j'ai cherché dans les références mais pas trouvé. C'est dommage car la méthode est simple pour un novice comme moi
_DoOmy_
Messages postés15Date d'inscriptionsamedi 19 novembre 2005StatutMembreDernière intervention17 septembre 2006 2 avril 2006 à 20:37
Avec tes fonction j'ai un pb: si je les appliques a deux fichiers de meme nom mais de chemin différents, écrire dan l'un revient a écrire dans l'autre aussi
a tu une solution???
_DoOmy_
Messages postés15Date d'inscriptionsamedi 19 novembre 2005StatutMembreDernière intervention17 septembre 2006 2 avril 2006 à 20:37
Avec tes fonction j'ai un pb: si je les appliques a deux fichiers de meme nom mais de chemin différents, écrire dan l'un revient a écrire dans l'autre aussi
a tu une solution???