J'ai une application que je souhaite configurer à partir d'un fichier .ini que je dois ecrire.
Je fais le test avec la fonction de Mr.Lasserre et je procède comme suit :
Dans mon fichier ini (cpTest.ini) :
j'entre premièrement (pour le test) les paramètres de connexion à SQL :
[Connexion]
cnx = "Data source=XXXXXXX;Integrated Security=SSPI;Initial Catalog=XXXX"
et je mets le fichier dans le même répértoire de l'application.
Côté Visual Studio 2008 :
Je déclare dans un module les deux fonctions :
Public Declare Function GetPrivateProfileString Lib "Kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Short, ByVal lpFileName As String) As Integer
et
1 2 3 4 5 6 7 8 9 10 11 12 13
| Public Function Get_Private_Profile_String(ByVal cAppName As String, ByVal cKeyName As String, ByVal cKeyDefault As String, ByRef cKeyValue As String, ByVal cProfName As String) As Integer
Dim iReaded As Integer
Const sLongueur As Short = 255
If cKeyName = "" Then
cKeyValue = Space$(1025)
iReaded = GetPrivateProfileString(cAppName, "", "", cKeyValue, 1024, cProfName)
Else
cKeyValue = Space$(255)
iReaded = GetPrivateProfileString(cAppName, cKeyName, cKeyDefault, cKeyValue, sLongueur, cProfName)
End If
cKeyValue = Trim$(cKeyValue)
Get_Private_Profile_String = iReaded
End Function |
Puis dans un autre module où je déclare ma connexion (qui était avant comme ca) :
1 2 3
| Public sub OpenConnexion ()
cnx = New Sql ("Data source=XXXXXXX;Integrated Security=SSPI;Initial Catalog=XXXX")
End Sub |
J'essaie de déclarer les arguments nécéssaire et leurs affecter les valeurs correspondants comme suit, enfin chercher la valeur de la clef dans le fichier ini, ici c'est pour la connexion, donc mon code permettant d'ouvrir la connexion devient :
1 2 3 4 5 6 7 8 9 10
| Public Sub OpenConnexion()
Dim cRubrique As String = "Connexion" 'Nom de la rubrique
Dim cKey As String = "cnx" 'Nom de la clé
Dim cRepertoire As String = Space(255) 'Variable récupérant la string
Dim cIniFile As String = "cpTest.ini" 'Nom du fichier Ini
Dim istat As Integer
'Appel de la fonction
istat = Get_Private_Profile_String(cRubrique, cKey, "", cRepertoire, cIniFile)
cnx = New SqlConnection(istat)
End Sub |
Enfin, je cherche à lire les données contenus dans un fichier .ini que je mets dans le même dossier de l'application.
J'ai l'erreur suivante à l'initialisation de la connexion :
Le format de la chaîne d'initialisation n'est pas conforme à la spécification qui débute à l'index 0
Pourriez - vous m'aider?
Ce n'est pas que je cherche complexifier la vie avec ini en .net, je sais qu'il ya moyen de créer un fichier de configuration en xml, mais ce fichier contient toute la configuration d'une autre application qu'on a pas encore migrer vers dot Net. Maintenant, les deux applications (l'ancienne et la partie migré vers Dot Net) douvent tourner avec les mêmes paramètres, enfin, le même fichier ini.
Partager