OVH Cloud OVH Cloud

Paramètres régionaux - Symbole décimal

6 réponses
Avatar
pierre.rivet
Bonjour,

Je cherche une idée pour forcer, à partir de mon application, un paramètre
régional de l'utilisateur.
Je voudrais que le symbole décimal soit un "." (point) à la place de la ","
(virgule).

J'ai bien trouvé la question 67 de la FAQ, mais, en quelque sorte, je
voudrais faire l'inverse.

Quelqu'un peut-il m'aider ?

Merci d'avance,

Pierre RIVET

6 réponses

Avatar
François Picalausa
Hello,

L'API SetLocaleInfo est prévue à cet effet.
Mais l'utilisateur n'aime généralement pas qu'on modifie ses paramètres sans
autorisation!
Voici un exemple:

Private Const LOCALE_SDECIMAL = &HE ' decimal separator

Declare Function SetLocaleInfo _
Lib "Kernel32" _
Alias "SetLocaleInfoA"
( _
Locale As Long, _
LCType As Long, _
ByVal lpLCData As String _
) _
As Long

Private Declare Function GetSystemDefaultLCID _
Lib "kernel32" _
( _
) _
As Long

Private Sub Command1_Click()
Dim dwLCID As Long
Dim Dummy As Long

dwLCID = GetSystemDefaultLCID()
SetLocaleInfo(dwLCID, LOCALE_SDECIMAL, ",") = False Then

End Sub


--
François Picalausa (MVP VB)
http://faq.vb.free.fr --- http://msdn.microsoft.com
http://apisvb.europe.webmatrixhosting.net

"pierre.rivet" a écrit dans le message de
news:c7vhus$me5$
Bonjour,

Je cherche une idée pour forcer, à partir de mon application, un
paramètre régional de l'utilisateur.
Je voudrais que le symbole décimal soit un "." (point) à la place de
la "," (virgule).

J'ai bien trouvé la question 67 de la FAQ, mais, en quelque sorte, je
voudrais faire l'inverse.

Quelqu'un peut-il m'aider ?

Merci d'avance,

Pierre RIVET


Avatar
ng
Salut,

Sinon voici une fonction permettant de récupérer cette info :


Public Function RecupSep() As String
RecupSep = CStr(1.5)
RecupSep = Mid$(Left$(RecupSep, Len(RecupSep) - 1), 2)
End Function




--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/
http://apisvb.europe.webmatrixhosting.net/

François Picalausa a écrit :

Hello,

L'API SetLocaleInfo est prévue à cet effet.
Mais l'utilisateur n'aime généralement pas qu'on modifie ses
paramètres sans autorisation!
Voici un exemple:

Private Const LOCALE_SDECIMAL = &HE ' decimal separator

Declare Function SetLocaleInfo _
Lib "Kernel32" _
Alias "SetLocaleInfoA"
( _
Locale As Long, _
LCType As Long, _
ByVal lpLCData As String _
) _
As Long

Private Declare Function GetSystemDefaultLCID _
Lib "kernel32" _
( _
) _
As Long

Private Sub Command1_Click()
Dim dwLCID As Long
Dim Dummy As Long

dwLCID = GetSystemDefaultLCID()
SetLocaleInfo(dwLCID, LOCALE_SDECIMAL, ",") = False Then

End Sub



"pierre.rivet" a écrit dans le message de
news:c7vhus$me5$
Bonjour,

Je cherche une idée pour forcer, à partir de mon application, un
paramètre régional de l'utilisateur.
Je voudrais que le symbole décimal soit un "." (point) à la place de
la "," (virgule).

J'ai bien trouvé la question 67 de la FAQ, mais, en quelque sorte, je
voudrais faire l'inverse.

Quelqu'un peut-il m'aider ?

Merci d'avance,

Pierre RIVET




Avatar
François Picalausa
Hello,

Cette fonction ne fonctionne pas avec des séparateurs décimaux de plus de
trois caractères contrairement à GetLocaleInfo!
(D'accord, c'est assez rare des séparateurs de 3 caractères et +)

--
François Picalausa (MVP VB)
http://faq.vb.free.fr --- http://msdn.microsoft.com
http://apisvb.europe.webmatrixhosting.net

"ng" a écrit dans le message de
news:%
Salut,

Sinon voici une fonction permettant de récupérer cette info :


Public Function RecupSep() As String
RecupSep = CStr(1.5)
RecupSep = Mid$(Left$(RecupSep, Len(RecupSep) - 1), 2)
End Function





Hello,

L'API SetLocaleInfo est prévue à cet effet.
Mais l'utilisateur n'aime généralement pas qu'on modifie ses
paramètres sans autorisation!
Voici un exemple:

Private Const LOCALE_SDECIMAL = &HE ' decimal separator

Declare Function SetLocaleInfo _
Lib "Kernel32" _
Alias "SetLocaleInfoA"
( _
Locale As Long, _
LCType As Long, _
ByVal lpLCData As String _
) _
As Long

Private Declare Function GetSystemDefaultLCID _
Lib "kernel32" _
( _
) _
As Long

Private Sub Command1_Click()
Dim dwLCID As Long
Dim Dummy As Long

dwLCID = GetSystemDefaultLCID()
SetLocaleInfo(dwLCID, LOCALE_SDECIMAL, ",") = False Then

End Sub



"pierre.rivet" a écrit dans le message de
news:c7vhus$me5$
Bonjour,

Je cherche une idée pour forcer, à partir de mon application, un
paramètre régional de l'utilisateur.
Je voudrais que le symbole décimal soit un "." (point) à la place
de la "," (virgule).

J'ai bien trouvé la question 67 de la FAQ, mais, en quelque sorte,
je voudrais faire l'inverse.

Quelqu'un peut-il m'aider ?

Merci d'avance,

Pierre RIVET






Avatar
ng
Exact.

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/
http://apisvb.europe.webmatrixhosting.net/

François Picalausa a écrit :

Hello,

Cette fonction ne fonctionne pas avec des séparateurs décimaux de
plus de trois caractères contrairement à GetLocaleInfo!
(D'accord, c'est assez rare des séparateurs de 3 caractères et +)


"ng" a écrit dans le message de
news:%
Salut,

Sinon voici une fonction permettant de récupérer cette info :


Public Function RecupSep() As String
RecupSep = CStr(1.5)
RecupSep = Mid$(Left$(RecupSep, Len(RecupSep) - 1), 2)
End Function





Hello,

L'API SetLocaleInfo est prévue à cet effet.
Mais l'utilisateur n'aime généralement pas qu'on modifie ses
paramètres sans autorisation!
Voici un exemple:

Private Const LOCALE_SDECIMAL = &HE ' decimal separator

Declare Function SetLocaleInfo _
Lib "Kernel32" _
Alias "SetLocaleInfoA"
( _
Locale As Long, _
LCType As Long, _
ByVal lpLCData As String _
) _
As Long

Private Declare Function GetSystemDefaultLCID _
Lib "kernel32" _
( _
) _
As Long

Private Sub Command1_Click()
Dim dwLCID As Long
Dim Dummy As Long

dwLCID = GetSystemDefaultLCID()
SetLocaleInfo(dwLCID, LOCALE_SDECIMAL, ",") = False Then

End Sub



"pierre.rivet" a écrit dans le message de
news:c7vhus$me5$
Bonjour,

Je cherche une idée pour forcer, à partir de mon application, un
paramètre régional de l'utilisateur.
Je voudrais que le symbole décimal soit un "." (point) à la place
de la "," (virgule).

J'ai bien trouvé la question 67 de la FAQ, mais, en quelque sorte,
je voudrais faire l'inverse.

Quelqu'un peut-il m'aider ?

Merci d'avance,

Pierre RIVET








Avatar
Zoury
alors autant utilisé Format$(0, ".") :O)

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/
Avatar
pierre.rivet
Merci à tous de vos éléments de réponse

Pierre

"Zoury" a écrit dans le message de
news:%
alors autant utilisé Format$(0, ".") :O)

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/