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

waspy59 190 Messages postés mercredi 24 novembre 2004Date d'inscription 15 mai 2013 Dernière intervention - 2 mars 2005 à 22:30 - Dernière réponse : waspy59 190 Messages postés mercredi 24 novembre 2004Date d'inscription 15 mai 2013 Dernière intervention
- 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
cs_Warning 517 Messages postés samedi 3 février 2001Date d'inscription 24 octobre 2006 Dernière intervention - 2 mars 2005 à 23:33
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/

Merci cs_Warning 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

cs_Warning 517 Messages postés samedi 3 février 2001Date d'inscription 24 octobre 2006 Dernière intervention - 2 mars 2005 à 22:47
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/
waspy59 190 Messages postés mercredi 24 novembre 2004Date d'inscription 15 mai 2013 Dernière intervention - 2 mars 2005 à 23:06
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 ?
waspy59 190 Messages postés mercredi 24 novembre 2004Date d'inscription 15 mai 2013 Dernière intervention - 3 mars 2005 à 01:05
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.