Problème du format des nombres de la machine
Utilisateur anonyme -
Bonjour,
Il y'a un temps, j'ai conçu une application en VB6, qui marchait bien sur ma machine avec paramétrage ,langue (Français (France)), dernièrement je l'ai réinstallé sur une autre machine avec Windows 10, qui une fois redémarrée, le paramétrage des nombres de la machine revient par défaut au
format : 1,234.00 (format américain, séparation par virgule, les décimaux après le point)
alors que mon application est conçue de façon à reconnaitre seulement le
format : 1 234,00 (format français, séparation par espace; les décimaux après la virgule)
Je cherche une commande ou un code qui, une fois l'application est ouverte, vérifie à priori le paramétrage des nombres, et s'il est différent au
format ( 1 234,00 ) devrait envoyer une alerte pour changer le paramétrage du format des nombres de la machine
Merci pour votre aide
Windows / Chrome 120.0.0.0
- Problème du format des nombres de la machine
- Format epub - Guide
- Format factory - Télécharger - Conversion & Codecs
- Machine virtuelle windows - Guide
- Hp usb disk storage format tool - Télécharger - Stockage
- Format apfs - Guide
3 réponses
Je ne sais pas s'il y avait une instruction pour ça en vb6.
Mais tu peux essayer de convertir "1 234,56" si ça plante, alors tu affiches ton message.
Bonjour
Pour vous dire la forme écrite de la forme est comme suite :
'TSalBrut est la zone de saisie du salaire 'pour changer le point en virgule TSalBrut=replace(TSalBrut,".",",") 'Format du Chiffre TSalBrut=format(TSalBrut,"#,##0.00")
Ça ne change rien à mes réponses
Mais ça témoigne d'autres mauvaises pratiques.
Selon ton commentaire, TSalBrut doit un textbox ou équivalent.
Cette ligne
TSalBrut=replace(TSalBrut,".",",")
Cherche donc à remplacer un caractère dans type Textbox, or c'est dans du texte qu'on remplace un caractère. Tu laisses donc le compilateur de VB décider de quel texte il s'agit.
Pour bien faire et éviter les surprises le jour ou VB décide d'utiliser un autre texte que celui dont tu t'attends, il faudrait te servir de la propriété qui retourne ou définit le texte affiché (selon les VB ça peut être Text ou Caption, en VB6 je ne sais plus)
Ensuite, cette ligne
TSalBrut=replace(TSalBrut,".",",")
Veut formater un nombre, c'est encore pire, tu laisses à VB le choix de prendre un truc dans le type Textbox, le convertir en nombre, comme il le souhaite, le formater et renvoyer un texte vers le type TextBox.
Les bonnes pratique seraient
Dim leTexte as string Dim leNombre as double leTexte = TSalBrut.Text 'ou .Caption leNombre = MaFonctionDeConversion(leTexte) leTexte = format(leNombre, "#,##0.00") TSalBrut.Text = leNombre
Et la fonction "MaFonctionDeConversion" serait capable de convertir un texte qui représente un nombre en nombre quel que soit son format.
Après, c'est une mauvaise pratique, l'utilisateur de l'ordinateur peut avoir besoin que son PC reste en configuration américaine.
Ça devrait être à ton programme de s'adapter.