Chemin et ini >>> probleme [Résolu]

Messages postés
190
Date d'inscription
mercredi 24 novembre 2004
Dernière intervention
15 mai 2013
- - Dernière réponse : waspy59
Messages postés
190
Date d'inscription
mercredi 24 novembre 2004
Dernière intervention
15 mai 2013
- 3 mars 2005 à 01:05
salut voici mon probleme, je veut creer un fichier ini (init.init) de structure suivante:



[chemin]

FichierLS=CheminOuSeTrouveCesFichiers

DossierFinal=CheminOuSeTrouveCeDossier



j'utilise donc les fonction suivantes:



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



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



Public Sub EcrireIni(stSection As String, stKey As String, stvaleur As String, stFichier As String)

' Lecture d'une valeur dans un fichier INI

' stSection est le la partie designée entre crochets ([option] par exemple)

' stKey est le nom de la clé à récupérer (COULEUR=... par exemple)

' stValeur est la valeur à stocker

' stFichier est le fichier à manipuler

WritePrivateProfileString stSection, stKey, stvaleur, stFichier

End Sub



Public Function LireIni(stSection As String, stKey As String, stFichier As String) As String

' Lecture d'une valeur dans un fichier INI

' stSection est le la partie designée entre crochets ([option] par exemple)

' stKey est le nom de la clé à récupérer (COULEUR=... par exemple)

Dim stBuf As String, lgBuf As Long, lgRep As Long

' Mise en place du buffer de lecture

stBuf = Space$(255)

lgBuf = 255

lgRep = GetPrivateProfileString(stSection, stKey, "", stBuf, lgBuf, stFichier)

LireIni = Left$(stBuf, lgRep)

End Function



Public Function FormINIT()

EcrireIni "Chemin", "FichierLS", "C:", App.Path & "\Init.ini"

EcrireIni "Chemin", "DossierFinal", "C:", App.Path & "\Init.ini"

End Function



le probleme c'est que les deux chemin en question sont variables
(en taille et en nature), donc comment fait t-on pour renplacer "C:" par ces chemins. G essayé de mettre des variables comme suit:



q = DirMain3.Path

r = DirMain4.Path

EcrireIni "Chemin", "FichierLS", q, App.Path & "\Init.ini"

EcrireIni "Chemin", "DossierFinal", r, App.Path & "\Init.ini"




mais le probleme c que ca ne marche pas >>>> "Erreur Type d'argument ByRef incompatible"



qu'est ce que g fait de travers?
Afficher la suite 

4 réponses

Meilleure réponse
Messages postés
517
Date d'inscription
samedi 3 février 2001
Dernière intervention
24 octobre 2006
3
Merci
Si ta raison ! lol
C'est vrai que c'est bizarre mais en fait je viens de m'apercevoir que c des parametres de type any. Donc essai plutot de mettre:
Public Sub EcrireIni(ByVal stSection As String, ByVal stKey As String,ByVal stvaleur As String,ByVal stFichier As String)


Warning
Admin Codes-Sources.com
http://www.decompiler-vb.net/

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 99 internautes nous ont dit merci ce mois-ci

Messages postés
517
Date d'inscription
samedi 3 février 2001
Dernière intervention
24 octobre 2006
0
Merci
Salut, tu declare tes variables en string ? exemple:
Dim q as string, r as string

ou encore essai comme ça:
$q = DirMain3.Path
$r = DirMain4.Path
EcrireIni "Chemin", "FichierLS", $q, App.Path & "\Init.ini"
EcrireIni "Chemin", "DossierFinal", $r, App.Path & "\Init.ini"

explication:
Si tu ne declare pas tes variables en string, alors elles seront de type variant, donc l'API n'en voudra pas.

Warning
Admin Codes-Sources.com
http://www.decompiler-vb.net/
Messages postés
190
Date d'inscription
mercredi 24 novembre 2004
Dernière intervention
15 mai 2013
0
Merci
ben oui elles sont declarer en string, c pour ça que je pige pas pourquoi ça foire.

ps: c pas plutot q$ que $q ?
Messages postés
190
Date d'inscription
mercredi 24 novembre 2004
Dernière intervention
15 mai 2013
0
Merci
youpi ca marche, merci bien Warning

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.