yoslo
Messages postés9Date d'inscriptiondimanche 25 avril 2004StatutMembreDernière intervention28 juillet 2005
-
19 janv. 2005 à 14:06
yoslo
Messages postés9Date d'inscriptiondimanche 25 avril 2004StatutMembreDernière intervention28 juillet 2005
-
19 janv. 2005 à 16:04
Bonjour à tous :)
Bon voila j'ai besoin de vos lumières.
J'ai fais un ptit prog qui récupére un fichier sur As400 qui le convertis en PDF et qui ensuite envoi ce finchier converti à un destinataire par mail.
Jusque là tout va bien seulement j'ai mis l'adresse mail du correspondant en dur dans le prog ce qui ne se fais pas me direz vous. c'est justement là que j'ai besoin de votre aide.
Pour envoyer le mail j'utilise ça:
MAPIMessages1.RecipAddress = "le_mail_de_mon_destinataire"
Mais à la place je voudrais récuperer la valeur de l'adresse dans un fichier .ini
j'ai trouvé un module sur le site qui permet de le faire mais la ou ca cloche baaa c'est que ca marche pas ou alors c'est que je ne l'utilise pas comme il faut.
j'ai donc fais comme ceci:
MAPIMessages1.RecipAdress = modINI.INIRead("MonEntete", "MaVariable")
Avec comme fichier Ini ceci: [MonEntete]
MaVariable=AdresseMail
voilà j'espere que j'ai ete assé clair et que vous pourez m'aider.
D'avance merci.
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 19 janv. 2005 à 14:15
Tout d'abord : il vaux mieux éviter de passer par des fichiers ini :
c'est un héritage des vieux systèmes 16 bits qui ne possèdaient pas de
base de registre, mais ca remonte à bien longtemps ! Maintenant, il
vaux mieux utiliser la base de registre : la plus planqué pour stocker
ses données, et surtout, les erreurs de manipulations sont moins
possibles (alors qu'il suffit de supprimer le fichier ini pour faire
planter le programme par exemple, supprimer la clé du registre demande
déjà plus de connaissances !)
Surtout qu'avec VB, il est très facile d'accèder au registre pour stocker ou lire une valeur !
Enfin bon, sinon, pour ton problème, sans le code du module, on peux
pas vraiment t'aider : est-ce que tu passer les bons paramètres, dans
le bon ordre ??? On ne peux pas savoir !
DarK Sidious
Administrateur et reponsable VB/API du site www.ProgOtoP.com
yoslo
Messages postés9Date d'inscriptiondimanche 25 avril 2004StatutMembreDernière intervention28 juillet 2005 19 janv. 2005 à 14:44
Voici le code du module que j'utilise
Si vous avez quelque chose de mieux je suis preneur (je debute en vb)
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
Private Declare Function WritePrivateProfileSection Lib "kernel32" Alias _
"WritePrivateProfileSectionA" ( _
ByVal lpAppName As String, _
ByVal lpString As Any, _
ByVal lpFileName As String) As Long
'Fonction pour lire une valeur dans un fichier INI
Function INIRead(Entete As String, Variable As String, Optional fichier As String) As String fichier IIf(fichier "", App.Path & "" & App.EXEName & ".ini", fichier)
INIRead = String(255, Chr(0))
INIRead = Left$(INIRead, GetPrivateProfileString(Entete, ByVal Variable, "", INIRead, Len(INIRead), fichier))
End Function
'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)
EcrireINI = WritePrivateProfileString(Entete, Variable, Valeur, fichier)
End Function
'Fonction pour supprimer une valeur dans un fichier INI
Function INIDelete(Entete As String, Variable As String, Optional fichier As String) As String fichier IIf(fichier "", App.Path & "" & App.EXEName & ".ini", fichier)
SupprINI = WritePrivateProfileString(Entete, Variable, 0&, fichier)
End Function
'Fonction pour supprimer une section dans un fichier INI
Function INIDeleteSection(Entete As String, Optional fichier As String) As String fichier IIf(fichier "", App.Path & "" & App.EXEName & ".ini", fichier)
SupprSectionINI = WritePrivateProfileSection(Entete, 0&, fichier)
End Function
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
Private Declare Function WritePrivateProfileSection Lib "kernel32" Alias _
"WritePrivateProfileSectionA" ( _
ByVal lpAppName As String, _
ByVal lpString As Any, _
ByVal lpFileName As String) As Long
'Fonction pour lire une valeur dans un fichier INI
Function INIRead(Entete As String, Variable As String, Optional fichier As String) As String fichier IIf(fichier "", App.Path & "" & App.EXEName & ".ini", fichier)
INIRead = String(255, Chr(0))
INIRead = Left$(INIRead, GetPrivateProfileString(Entete, ByVal Variable, "", INIRead, Len(INIRead), fichier))
End Function
'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)
EcrireINI = WritePrivateProfileString(Entete, Variable, Valeur, fichier)
End Function
'Fonction pour supprimer une valeur dans un fichier INI
Function INIDelete(Entete As String, Variable As String, Optional fichier As String) As String fichier IIf(fichier "", App.Path & "" & App.EXEName & ".ini", fichier)
SupprINI = WritePrivateProfileString(Entete, Variable, 0&, fichier)
End Function
'Fonction pour supprimer une section dans un fichier INI
Function INIDeleteSection(Entete As String, Optional fichier As String) As String fichier IIf(fichier "", App.Path & "" & App.EXEName & ".ini", fichier)
SupprSectionINI = WritePrivateProfileSection(Entete, 0&, fichier)
End Function
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 19 janv. 2005 à 15:08
Avec ce module, il te faut lui spécifier le nom du fichier en troisième
paramètre, sinon, il va automatiquement chercher dans le fichier "Nom
de l'application.ini" qui doit se trouver dans le dossier de
l'application, pas pratique donc !
Pour revenir sur l'histoire de la base de registre, VB intègre
directement des fonctions pour y accèder : SaveSetting et GetSetting
qui permettent de sauvegarder et de charger une valeur dans/à partir du
registre, sans avoir à s'ennuyer à créer des clés manuellement (VB le
fait tout seul comme un grand), ce qui est plus pratique que de devoir
passer par un fichier ini et un module approprié pour y accèder !
DarK Sidious
Administrateur et reponsable VB/API du site www.ProgOtoP.com
yoslo
Messages postés9Date d'inscriptiondimanche 25 avril 2004StatutMembreDernière intervention28 juillet 2005 19 janv. 2005 à 15:23
Oui mon fichier ini porte le meme nom que mon executable mais marche pas qq meme :(
Si non pour l'autre solution pourrais tu me donner un exemple d'utilisation ?
je c je suis chiant mais bon j' voudrais vraiement y arriver ( apres ca mon prog est bouclé lol)
en tt cas merci pour ton aide ;)
Vous n’avez pas trouvé la réponse que vous recherchez ?