CONNAÎTRE LE SÉPARATEUR DÉCIMAL DE VOTRE ORDINATEUR

lsim - 25 nov. 2001 à 15:08
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 9 juil. 2008 à 17:08
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/1191-connaitre-le-separateur-decimal-de-votre-ordinateur

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
9 juil. 2008 à 17:08
le plus court pour obtenir l'info:
Format$(0, ".")
Utilisateur anonyme
15 nov. 2006 à 11:15
Bonjour,
ç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
Mutos Messages postés 103 Date d'inscription mercredi 30 avril 2003 Statut Membre Dernière intervention 14 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...


@+

Benoît 'Mutos' ROBIN
http://hoshikaze.net
SgtKabukinan Messages postés 106 Date d'inscription lundi 20 septembre 2004 Statut Membre Dernière intervention 23 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és 106 Date d'inscription lundi 20 septembre 2004 Statut Membre Dernière intervention 23 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és 1 Date d'inscription vendredi 27 décembre 2002 Statut Membre Derniè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és 3 Date d'inscription mercredi 20 décembre 2000 Statut Membre Dernière intervention 19 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!
c'est trés pratique, certes, mais comment le changer par le code ? je n'en ai pas la moindre idée. si quelqu'un sait ...
Rejoignez-nous