bonjour,

J'ai un problème dans mon appli.
Je veux initialiser mes variables grace a un fichier ini pour une meilleure flexibilité.

J'ai configurer mon programme avec ce code suivant pour initialiser mes variables.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
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
    Declare Function GetPrivateProfileInt Lib "Kernel32" Alias "GetPrivateProfileIntA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal nDefault As Long, ByVal lpFileName As String) As Long
 
 
    Function Get_Private_Profile_Int(ByVal cAppName As String, ByVal cKeyName As String, ByVal nKeyDefault As Integer, ByVal cProfName As String) As Long
 
 
        ' LIRE UN ENTIER
        ' Parametres:
        ' cAppName Correspond à [Rubrique]
        ' cKeyName Nom de l'entrée, de la clé
        ' nKeyDefault Valeur par défaut de la chaîne cherchée
        ' cProfName Nom du Fichier "INI" Privé
        ' Sortie:
        ' La fonction retourne une valeur numérique entière
 
        Get_Private_Profile_Int = GetPrivateProfileInt(cAppName, cKeyName, nKeyDefault, cProfName)
 
    End Function
 
    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
 
        ' LIRE UNE STRING
        ' Parametres:
        ' cAppName Correspond à [Rubrique]
        ' cKeyName Nom de l'entrée, de la clé
        ' cKeyDefault Valeur par défaut de la chaîne cherchée
        ' cKeyValue Valeur lue en face de l'Entrée ou cKeyDefault si l'Entrée est vide
        ' cProfName Nom du Fichier "INI" Privé
        ' Sortie:
        ' Valeur lue dans cKeyValue
        ' La fonction retourne le nombre de caractères dans cKeyValue 
 
        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)
        'Enlever le dernier caractère?
        'If Len(cKeyValue) <> 0 Then
        ' cKeyValue = Mid$(cKeyValue, 1, Len(cKeyValue) - 1)
        'End If
        Get_Private_Profile_String = iReaded
 
    End Function
ensuite je vais dans la partie Load de mon programme ou se trouve mes variable.

Pour configurer ma varible je fais ce code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
RS232.BaudRate = Get_Private_Profile_Int("Config Port", "baudrate", 9600, "C:\scanning\bin\Test_RS232.ini")
J'ai compiler pour voir si mon affectation avait marché et la mon programme sort une exception :



C'est la première que j'utilise l'initialisation avec un fichier .ini donc si vous pouvez m'expliquez pourquoi j'ai cette exception, ca serait cool

Merci d'avance