Chemin et ini >>> probleme

Résolu
waspy59 Messages postés 189 Date d'inscription mercredi 24 novembre 2004 Statut Membre Dernière intervention 15 mai 2013 - 2 mars 2005 à 22:30
waspy59 Messages postés 189 Date d'inscription mercredi 24 novembre 2004 Statut Membre 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?

4 réponses

cs_Warning Messages postés 516 Date d'inscription samedi 3 février 2001 Statut Membre Dernière intervention 24 octobre 2006 2
2 mars 2005 à 23:33
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/
3
cs_Warning Messages postés 516 Date d'inscription samedi 3 février 2001 Statut Membre Dernière intervention 24 octobre 2006 2
2 mars 2005 à 22:47
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/
0
waspy59 Messages postés 189 Date d'inscription mercredi 24 novembre 2004 Statut Membre Dernière intervention 15 mai 2013
2 mars 2005 à 23:06
ben oui elles sont declarer en string, c pour ça que je pige pas pourquoi ça foire.

ps: c pas plutot q$ que $q ?
0
waspy59 Messages postés 189 Date d'inscription mercredi 24 novembre 2004 Statut Membre Dernière intervention 15 mai 2013
3 mars 2005 à 01:05
youpi ca marche, merci bien Warning
0
Rejoignez-nous