Modification du séparateur décimal dans la base de registre

Soyez le premier à donner votre avis sur cette source.

Snippet vu 7 798 fois - Téléchargée 38 fois

Contenu du snippet

Permet de trouver le séparateur décimal et de le changer si nécessaire.
En fin de prog, revient au séparateur initialement installé sur la machine

Source / Exemple :


' A mettre dans un modul au chargement du prog
Public Declare Function SetLocaleInfo Lib "kernel32" _
                        Alias "SetLocaleInfoA" _
                        (ByVal Locale As Long, _
                        ByVal LCType As Long, _
                        ByVal lpLCData As String) As Long
Public Declare Function GetSystemDefaultLCID Lib "kernel32" () As Long

Public SDecSep As String
Public LCID As Long

Dim iNumber As Single
Dim X__ID  As Long
iNumber = Val("1.1")
SDecSep = Mid(iNumber, 2, 1)
If SDecSep <> "." Then 'si vous voulez forcez le "." sinon "," si vous voulez forcez ","
LCID = GetSystemDefaultLCID()
X__ID = SetLocaleInfo(LCID, 14, ".")
 'et pour remettre le séparateur qu'il y avait à l'ouverure du prog
If SDecSep <> "." Then
X__ID = SetLocaleInfo(LCID, 14, SDecSep)

Conclusion :


Comme je l'ai tiré d'un prog plus important j'espère ne rien voir oublier

A voir également

Ajouter un commentaire Commentaires
Messages postés
1
Date d'inscription
samedi 16 février 2008
Statut
Membre
Dernière intervention
20 septembre 2009

Je viens de tester le code proposé avec succés cela marche très bien.

Merci encore pour ces quelques lignes claires.
Messages postés
37
Date d'inscription
jeudi 28 septembre 2006
Statut
Membre
Dernière intervention
18 juin 2007

Cette source ne marche que si le nombre comporte 3 caractères, soit le séparateur en 2ème position, je me trompe?
Messages postés
40
Date d'inscription
mardi 9 novembre 2004
Statut
Membre
Dernière intervention
19 janvier 2009

Excellent Mutos ^^, c'est la meilleure solution que j'ai pu lire jusqu'à maintenant ...
Messages postés
103
Date d'inscription
mercredi 30 avril 2003
Statut
Membre
Dernière intervention
14 mai 2010

Bonjour à tous, bonjour PATRICE99,


VB.Net en tout cas, on peut lui faire ignorer les paramètres régionaux, j'ai testé avec les 3 lignes suivantes, mon application ne plante plus, preuve qu'elle interpréte bien les nombres avec ".", et mon panneau de config me sort bien le Français avec la "," :

Imports System.Globalization
Imports System.Threading
Thread.CurrentThread.CurrentCulture = New CultureInfo("en-us")

A faire en début de programme (Main ou Load de la première forme). Ici on lui force la culture américaine avec le "." et tous les autres paramètres, mais on peut aussi faire plus subtil en créant une variable CultureInfo et en la modifiant à loisir !


@+

Benoît 'Mutos' ROBIN
http://spacesims.hoshikaze.net
Messages postés
1221
Date d'inscription
jeudi 23 août 2001
Statut
Membre
Dernière intervention
9 septembre 2018

On ne peut pas changer le séparateur décimal pour une application seulement, on ne peut le changer que pour tout Windows.
Afficher les 8 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Du même auteur (attila46)