jon51
Messages postés35Date d'inscriptionmercredi 10 octobre 2007StatutMembreDernière intervention31 juillet 2008
-
29 mai 2008 à 09:59
cs_Gammacronosios
Messages postés49Date d'inscriptionlundi 25 octobre 2004StatutMembreDernière intervention23 février 2010
-
29 mai 2008 à 18:00
bonjour je suis entrain de terminer mon projet qui est une supervision sou VB2005 express. cette application utilise des plage d'adresse ip rentré en dur dans le code source. j'aimerai pouvoir régler ces plage d'adrese ip grace à un fichier .ini pour que mon application soit transportable.
comment puis-je faire?
cs_Gammacronosios
Messages postés49Date d'inscriptionlundi 25 octobre 2004StatutMembreDernière intervention23 février 2010 29 mai 2008 à 10:46
Salut [auteur/JON51/1169329.aspx jon51]
Le moyen le plus simple serait d'utiliser 2 api de windows :
- WritePrivateProfileString (pour ecrire dans ton fichier ini)
- GetPrivateProfileString (pour lire)
Elles sont déclarés ainsi en vb6 :
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
Si tu utilise vb2005 comme tu le dis, utilise l'utilitaire de mise à niveau du code vb6 qui est inclut dans vb2005
Ensuite, pour les utiliser :
Pour ecrire :
WritePrivateProfileString(<Titre de la section>,<Clé de ta valeur>,<Ta valeur>,<Le chemin de ton fichier>
ex :
WritePrivateProfileString("MaSection","MaClé","Bonjour","C:\Test.ini")
Tu auras dans ton fichier ini :
[MaSection]
MaClé=Bonjour
Pour lire :
GetPrivateProfileString(<titre de la section>,<Clé de la valeur>,<La valeur par defaut qui doit être retourné si rien n'a été récupéré>,<Ta variable qui va récupéré ce qui va être lu>,<La taille maximale de la valeur que peut récupérer ta variable>,<Le chemin de ton fichier>)
ex :
Dim Valeur as string
GetPrivateProfileString("MaSection","MaClé","Rien n'a été lu",Valeur,256,"C:\Test.ini")
Valeur aura alor pour valeur : "Bonjour" ou bien "Rien n'a été lu" si 'MaClé' ne contient aucune valeur
J'espère que ça va t'aider
A bientot
C'est un art la programmation, non
jon51
Messages postés35Date d'inscriptionmercredi 10 octobre 2007StatutMembreDernière intervention31 juillet 2008 29 mai 2008 à 11:14
j'ai trouvé l'utilitaire de mise a niveau mais il me met ça:
'UPGRADE_ISSUE: La déclaration d'un paramètre 'As Any' n'est pas prise en charge. Cliquez ici : 'ms-help://MS.VSExpressCC.v80/dv_commoner/local/redirect.htm?keyword="FAE78A8D-8978-4FD4-8208-5B7324A8F795"'
'UPGRADE_ISSUE: La déclaration d'un paramètre 'As Any' n'est pas prise en charge. Cliquez ici : 'ms-help://MS.VSExpressCC.v80/dv_commoner/local/redirect.htm?keyword="FAE78A8D-8978-4FD4-8208-5B7324A8F795"'
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
Integer
'UPGRADE_ISSUE: La déclaration d'un paramètre 'As Any' n'est pas prise en charge. Cliquez ici : 'ms-help://MS.VSExpressCC.v80/dv_commoner/local/redirect.htm?keyword="FAE78A8D-8978-4FD4-8208-5B7324A8F795"'
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
Integer,
ByVal lpFileName
As
String)
As
Integerque dois je faire?
cs_Gammacronosios
Messages postés49Date d'inscriptionlundi 25 octobre 2004StatutMembreDernière intervention23 février 2010 29 mai 2008 à 11:45
re
Oui la mise à niveau dit qu'il y a un problème avec 'Any', qui n'existe plus en .net
Moi, quand il me met ça, je remplace 'as Any' par 'as Object' et sa marche trés bien ^^
Sinon pour les declarations, met ça dans un nouveau module (par exemple) sans oublié de mettre 'Private' à 'Public' pour pouvoir les utiliser partout dans ton programme
C'est un art la programmation, non
Vous n’avez pas trouvé la réponse que vous recherchez ?
jon51
Messages postés35Date d'inscriptionmercredi 10 octobre 2007StatutMembreDernière intervention31 juillet 2008 29 mai 2008 à 13:39
re
j'ai mis le code suivant dans un bouton mai il me met une erreur.
sai tu de quoi ça peut venir?
Public
Class Form1
Private
Declare
Function WritePrivateProfileString
Lib
"kernel32"
Alias
"WritePrivateProfileStringA" (
ByVal lpApplicationName
As
String,
ByVal lpKeyName
As
Object,
ByVal lpString
As
Object,
ByVal lpFileName
As
String)
As
Integer
Private
Declare
Function GetPrivateProfileString
Lib
"kernel32"
Alias
"GetPrivateProfileStringA" (
ByVal lpApplicationName
As
String,
ByVal lpKeyName
As
Object,
ByVal lpDefault
As
String,
ByVal lpReturnedString
As
String,
ByVal nSize
As
Integer,
ByVal lpFileName
As
String)
As
Integer
Private
Sub Button1_Click(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles Button1.ClickWritePrivateProfileString(