Bonjour à tous,

Je cherche à valider les variables d'environnements :

je suis en train de concevoir une appli en VB .net dans laquelle j'effectue un certain nombre de calculs sur les Double.

Cependant, j'ai un problème avec mon séparateur décimal qui dans la langue francaise est calé sur la virgule alors que j'aurais besoin d'un point.

j'ai trouvé sur le net, un bout de code, qui permet de changer le séparateur décimal :

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
 
    Private Declare Function GetLocaleInfo Lib "kernel32" Alias "GetLocaleInfoA" (ByVal Locale As Integer, ByVal LCTYPE As Integer, ByVal lpLCData As String, ByVal cchData As Integer) As Integer
    Private Declare Function SetLocaleInfo Lib "kernel32" Alias "SetLocaleInfoA" (ByVal Locale As Integer, ByVal LCTYPE As Integer, ByVal lpLCData As String) As Integer
    Private Declare Function GetUserDefaultLCID Lib "kernel32" () As Integer
    'Déclaration de la constante séparateur décimal
 
    Private Const LOCALE_SDECIMAL = &HE
    Public Property DecimalSeparator() As String
 
        Get
            Dim nLength As Integer
            Dim nLocale As Integer
 
            nLocale = GetUserDefaultLCID()
            nLength = GetLocaleInfo(nLocale, LOCALE_SDECIMAL, vbNullString, 0) - 1
            DecimalSeparator = Space$(nLength)
            GetLocaleInfo(nLocale, LOCALE_SDECIMAL, DecimalSeparator, nLength)
        End Get
 
        Set(ByVal value As String)
            Dim nLocale As Integer
            If value <> DecimalSeparator Then
                If value = "." Or value = "," Then
                    nLocale = GetUserDefaultLCID()
                    SetLocaleInfo(nLocale, LOCALE_SDECIMAL, value)
                End If
            End If
        End Set
 
    End Property
Ainsi, dans la fenêtre de démarrage de mon appli, j'effectue un :

Le problème qui se pose est le suivant :
le changement du séparateur, n'est pas effectif dans le processus en cours, du coup, mon appli plante. Et ce n'est qu'au redémarrage de l'appli que les changements sont pris en compte.

Je recherche donc un moyen de valider les variables d'environnement pour le processus en cours (et même pour tous les autres pendant qu'on y est)

Je vous remercie d'avance de votre aide.