Modification du séparateur décimal sans les api jsute avec le framework .net

Soyez le premier à donner votre avis sur cette source.

Snippet vu 13 487 fois - Téléchargée 35 fois

Contenu du snippet

Comme tout le monde réalisant des appli de gestion, on est souvent obligé de faire des petites modifs qui s'avèrent transparentes à l'utilisateurs mais qui nous nous aident beaucoup!
Voila donc mon code qui permet de modifier le panneau de config pour les paramètres du séparateur de décimal, !!!! MAIS JUSTE LE TEMPS DU PROGRAMME!!!!
A noter également que ceci est réalisé sans les API et juste avec le framework .Net (et oui personne ne l'ayant encore réalisé je me permet de donner la source... ^^)
Ceci peut poser problème également si d'autres appli telles que excel récupèrent les données en même temps; mais bon je travaille à une version plus aboutie.

J'attends quand même vos impressions!

Source / Exemple :


Public Shared Sub ForceDot()

        'On récupère le séparateur qui est utilisé sur la station de travail
        Dim oldDecimalSeparator As String = Application.CurrentCulture.NumberFormat.NumberDecimalSeparator

        'On compare le séparateur instancié avec le point
        If oldDecimalSeparator = "." Then
            'Le séparateur instancié dans le panneau de configuration est le point : "."
        Else
            'Le séparateur instancié dans le panneau de configuration est la virgule : ","
            Dim forceDotCulture As CultureInfo

            'Code un peu louche il faut avouer, mais il faut faire avec car le framework pose problème
            'ici; en effet, il faut cloner la culture pour pouvoir modifier les paramètres de l'application
            'car sinon la culture de base est en lecture seule.
            forceDotCulture = Application.CurrentCulture.Clone()

            'On affecte le point : "." comme paramètre de séparateur décimal
            forceDotCulture.NumberFormat.NumberDecimalSeparator = "."

            'Là, on affecte l'application cloné à celle où l'on travaille 
            'C'est un passage flou car en fait, l'appli est en mode readonly et l'on ne peut pas
            'la modifier directement, d'où cette affectation
            Application.CurrentCulture = forceDotCulture

        End If

    End Sub

A voir également

Ajouter un commentaire Commentaires
Messages postés
3
Date d'inscription
samedi 28 juin 2008
Statut
Membre
Dernière intervention
23 décembre 2010

j ai un ptit problem
apre l ajout de champ; j ai un bouton pour modifier le champ mais c champ prond la valour de la bas de donne avec vigrule apre la modification ca march pas par ce que c chaom avec la virgul mais apre changer le vergule avec le point ca march bien

voila ;
je voudrez un code pour charger la virgul avec le poit au cas de clique sur modifier
merci
cordialment
Messages postés
103
Date d'inscription
mercredi 30 avril 2003
Statut
Membre
Dernière intervention
14 mai 2010

Bonjour,


Au fait, juste un petit commentaire, on peut bien modifier la culture de l'application en cours en quelques petites lignes sous .Net, sans toucher le moins du monde au règlage de la machine.

Le code ci-dessous :
' Imports needed to change application culture
Imports System.Globalization ' For Thread
Imports System.Threading ' For CultureInfo
' Change culture to force decimal "." even if the machine has ","
Thread.CurrentThread.CurrentCulture = New CultureInfo("en-US")

Il force la culture de l'application en anglais US, quel que soit le règlage de la machine, exactement ce dont j'avais besoin...


@+

Benoît 'Mutos' ROBIN
http://hoshikaze.net
Messages postés
3
Date d'inscription
lundi 23 février 2004
Statut
Membre
Dernière intervention
19 octobre 2010

Bonjour, J'ai essayé votre petite applciation. Ca fonctionne . sauf que lorsque je fais un update SQL, si j'ai la virgule comme séparateur dans le panneau de configuration ca fonctionne, mais si je met le point cela ne fonctionne pas même si je modifie le separateur avec une virgule a partir de votre fonction.
CMD1.CommandText "UPDATE form_suivi SET [durée] " & Txtdurée.Text
commmit ect
J'ai l'erreur "erreur de syntaxe dans l'instruction update"

Merci
Messages postés
103
Date d'inscription
mercredi 30 avril 2003
Statut
Membre
Dernière intervention
14 mai 2010

Bonjour,


J'ai le même problème, une appli (éditeur de systèmes stellaires) qui fait une exception sur des constantes en "." lorsqu'elle se trouve sur une machine en ",", je souhaiterai qu'elle fonctionne quel que soit le séparateur de la machine. Alors j'ai commencé à lire le post... Et après SPY166, en un an, plus de nouvelles, déçu !

Je me demande si l'on ne peut pas modifier uniquement la culture de l'application sans toucher à celle de la machine ?


@+

Benoît 'Mutos' ROBIN
http://hoshikaze.net
Messages postés
207
Date d'inscription
jeudi 21 novembre 2002
Statut
Membre
Dernière intervention
29 mars 2006

Ah ben oui je suis bête
Afficher les 9 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.