Mutos
Messages postés103Date d'inscriptionmercredi 30 avril 2003StatutMembreDernière intervention14 mai 2010 27 déc. 2005 à 05:42
Bonjour,
En .Net, savez-vous si on peut le changer dans l'application et pas dans la machine ? J'ai lu des choses sur les variables CultureInfo et autres, mais jusqu'à présent rien de concret...
SgtKabukinan
Messages postés106Date d'inscriptionlundi 20 septembre 2004StatutMembreDernière intervention23 janvier 2010 16 nov. 2005 à 11:08
après test de vos deux codes : la preuve par 9
voila en considérant qu'avant le test mon séparateur par défaut est ","
TEST 1ere manche :
--------------------
MsgBox (GetUserLocaleInfo(GetSystemDefaultLCID, LOCALE_SMONDECIMALSEP))
> affiche ","
MsgBox (Check_Decimal_Separator)
> trouve le "," demande de changer en "." est renvoie True
MsgBox (GetUserLocaleInfo(GetSystemDefaultLCID, LOCALE_SMONDECIMALSEP))
> affiche ","
A bon mais pourquoi ???
TEST 2e manche :
--------------------
MsgBox (GetUserLocaleInfo(GetSystemDefaultLCID, LOCALE_SMONDECIMALSEP))
> affiche ","
MsgBox (Check_Decimal_Separator)
> affiche True
Donc le changement a bien été prix en compte mais ta fonction Néo ne prend pas le changement en compte ? une raison a cela ?? ou je ne suis pas bien réveillé ?
SgtKabukinan
Messages postés106Date d'inscriptionlundi 20 septembre 2004StatutMembreDernière intervention23 janvier 2010 16 nov. 2005 à 11:00
tout ca est assez interessant et je crois que cela va changer ma vie !
par contre @wayne :
si le séparateur décimal n'est pas un ".", tu dis le séparateur est un "." voulez vous le changer en "." ??!
cs_wayne
Messages postés1Date d'inscriptionvendredi 27 décembre 2002StatutMembreDernière intervention 8 janvier 2003 8 janv. 2003 à 09:27
je me demande si tu t'es pas trompé, en revanche vos 2 bouts de codes m'ont permis de aire une fonction qui vérifie que le séparateur est bien le point et qui le change si besoin:
la fonction renvois un booléen pour savoir si le séparateur est bien le point et si il a été effectué, l'API utilisée est :
Public Declare Function GetSystemDefaultLCID Lib "kernel32" () As Long
Public Declare Function SetLocaleInfo Lib "kernel32" _
Alias "SetLocaleInfoA" _
(ByVal Locale As Long, _
ByVal LCType As Long, _
ByVal lpLCData As String) As Long
********* la fonction ****************
Public Function Check_Decimal_Separator() As Boolean
Dim iNumber As Single
Dim SDecSep As String
Dim LCID As Long
Dim sReturn As String
Dim X__ID As Long
iNumber = Val("1.1")
SDecSep = Mid(iNumber, 2, 1)
If SDecSep <> "." Then
If MsgBox("le séparateur décimal est un point" & vbCrLf & "voulez vous le changer?", vbYesNo, "Params Info") = 6 Then
LCID = GetSystemDefaultLCID()
X__ID = SetLocaleInfo(LCID, 14, ".")
Check_Decimal_Separator = True
Else
Check_Decimal_Separator = False
End If
Else
Check_Decimal_Separator = True
End If
End Function
voila je crois que c'est bon, enfin vous verrez vs meme
cs_GMI
Messages postés3Date d'inscriptionmercredi 20 décembre 2000StatutMembreDernière intervention19 avril 2002 19 avril 2002 à 23:59
Y a plus simple : Code à insérer dans un module.
Dim Nombre As Single
Dim SeparateurDecimal As String
Nombre = Val("1.1")
SeparateurDecimal = Mid(Nombre, 2, 1)
C'est pas de la programmation professionnele, mais ça marche!
9 juil. 2008 à 17:08
Format$(0, ".")
15 nov. 2006 à 11:15
ça n'existait pas l'époque! pour vb.Net le snippet est eb cours de validation
http://www.codyx.org/snippet_modifier-separateur-decimale-options-regionales-linguistiques_264.aspx
27 déc. 2005 à 05:42
En .Net, savez-vous si on peut le changer dans l'application et pas dans la machine ? J'ai lu des choses sur les variables CultureInfo et autres, mais jusqu'à présent rien de concret...
@+
Benoît 'Mutos' ROBIN
http://hoshikaze.net
16 nov. 2005 à 11:08
voila en considérant qu'avant le test mon séparateur par défaut est ","
TEST 1ere manche :
--------------------
MsgBox (GetUserLocaleInfo(GetSystemDefaultLCID, LOCALE_SMONDECIMALSEP))
> affiche ","
MsgBox (Check_Decimal_Separator)
> trouve le "," demande de changer en "." est renvoie True
MsgBox (GetUserLocaleInfo(GetSystemDefaultLCID, LOCALE_SMONDECIMALSEP))
> affiche ","
A bon mais pourquoi ???
TEST 2e manche :
--------------------
MsgBox (GetUserLocaleInfo(GetSystemDefaultLCID, LOCALE_SMONDECIMALSEP))
> affiche ","
MsgBox (Check_Decimal_Separator)
> affiche True
Donc le changement a bien été prix en compte mais ta fonction Néo ne prend pas le changement en compte ? une raison a cela ?? ou je ne suis pas bien réveillé ?
16 nov. 2005 à 11:00
par contre @wayne :
si le séparateur décimal n'est pas un ".", tu dis le séparateur est un "." voulez vous le changer en "." ??!
8 janv. 2003 à 09:27
la fonction renvois un booléen pour savoir si le séparateur est bien le point et si il a été effectué, l'API utilisée est :
Public Declare Function GetSystemDefaultLCID Lib "kernel32" () As Long
Public Declare Function SetLocaleInfo Lib "kernel32" _
Alias "SetLocaleInfoA" _
(ByVal Locale As Long, _
ByVal LCType As Long, _
ByVal lpLCData As String) As Long
********* la fonction ****************
Public Function Check_Decimal_Separator() As Boolean
Dim iNumber As Single
Dim SDecSep As String
Dim LCID As Long
Dim sReturn As String
Dim X__ID As Long
iNumber = Val("1.1")
SDecSep = Mid(iNumber, 2, 1)
If SDecSep <> "." Then
If MsgBox("le séparateur décimal est un point" & vbCrLf & "voulez vous le changer?", vbYesNo, "Params Info") = 6 Then
LCID = GetSystemDefaultLCID()
X__ID = SetLocaleInfo(LCID, 14, ".")
Check_Decimal_Separator = True
Else
Check_Decimal_Separator = False
End If
Else
Check_Decimal_Separator = True
End If
End Function
voila je crois que c'est bon, enfin vous verrez vs meme
19 avril 2002 à 23:59
Dim Nombre As Single
Dim SeparateurDecimal As String
Nombre = Val("1.1")
SeparateurDecimal = Mid(Nombre, 2, 1)
C'est pas de la programmation professionnele, mais ça marche!
25 nov. 2001 à 15:08