Soucis apres un deploiment [Résolu]

Signaler
Messages postés
3
Date d'inscription
lundi 12 octobre 2015
Statut
Membre
Dernière intervention
12 octobre 2015
-
Messages postés
219
Date d'inscription
mercredi 26 octobre 2011
Statut
Membre
Dernière intervention
22 juin 2017
-
Salut,

J'ai créé un soft pour les joueurs de poker, le principe rentrée leurs données pour avoir un résultat.

Je déploie mon soft via click once sur un serveur gratuit

Le problème :

Quand les utilisateurs rentrent leurs données avec un point ou une virgule cela affiche une erreur "Ce ne sont pas des nombres"


Sauf que moi je n'ai pas cette erreur ?!


Voici le code de vérification des champs (c'est une class) :

Public Class Verif

Private _ChampAVerifier As Object
Private _Validation As String
Private _ColorChamp As Object
Private _Comfirm As Boolean
Private _Valeur As Double
Sub New(ByVal ChampAVerifier As Object)
_ChampAVerifier = New Object
_ChampAVerifier = ChampAVerifier

_Validation = New String("")

_ColorChamp = New Object
_ColorChamp = Color.White
_Comfirm = New Boolean()
End Sub

Public Sub Numeric()
_ChampAVerifier.text = Replace(_ChampAVerifier.text, ",", ".")
_ChampAVerifier.text = Replace(_ChampAVerifier.text, " ", "")

If _ChampAVerifier.text = "" Then
_Validation = "Un ou plusieurs champs sont vide !"
_ColorChamp = Color.FromArgb(255, 192, 192)
_Comfirm = False
ElseIf _ChampAVerifier.text Is Nothing Or Not IsNumeric(_ChampAVerifier.text) Then
_Validation = "Ce ne sont pas des nombres"
_ColorChamp = Color.FromArgb(255, 192, 192)
_Comfirm = False
Else
_Comfirm = True
_Valeur = New Double
_Valeur = _ChampAVerifier.text
End If

End Sub
Public Property Erreur() As String
Get
Return _Validation
End Get
Set(ByVal value As String)
_Validation = value
End Set
End Property
Public Property Confirm() As Boolean
Get
Return _Comfirm
End Get
Set(ByVal value As Boolean)
_Comfirm = value
End Set
End Property
Public Property ZoneTexteColor() As Object
Get
Return _ColorChamp
End Get
Set(ByVal value As Object)
_ColorChamp = value
End Set
End Property
Public Property Valeur() As Double
Get
Return _Valeur
End Get
Set(ByVal value As Double)
_Valeur = value
End Set
End Property


End Class


Chez l'utilisateur, les virgules sont bien remplacés comme les espaces .

Des idées ?

4 réponses

Messages postés
219
Date d'inscription
mercredi 26 octobre 2011
Statut
Membre
Dernière intervention
22 juin 2017
9
Bonjour,

a mon avis sur ton pc de developpement, c'est le point qui est séparateur décimal.

Sur le pc de l'utilisateur, c'est la virgule.

lorsque tu remplace la virgule par le point, chez toi pas de problème car 2.5 reste 2.5 et 2,5 devient 2.5 donc OK.

chez l'utilisateur même effet mais 2.5 ne veut rien dire puisque c'est 2,5 qui est le nombre deux et demi.

chez cet utilisateur 2.500 voudra dire 2500 et doit bien passer.

vas voir du coté de
CultureInfo.CurrentCulture


et détectes le signe que tu dois remplacer ou je pense en faisant un clone de la culture tu pourra faire un Parse de ton text directement.

Bonne journée
Messages postés
3
Date d'inscription
lundi 12 octobre 2015
Statut
Membre
Dernière intervention
12 octobre 2015

thx je regarde de suite ;)

Je vous tiens au news
Messages postés
3
Date d'inscription
lundi 12 octobre 2015
Statut
Membre
Dernière intervention
12 octobre 2015

donc probleme resolu pour la region francaise, je vais appronfondir le sujet pour permet au autre region de pouvoir s'en servir sans bug
Messages postés
219
Date d'inscription
mercredi 26 octobre 2011
Statut
Membre
Dernière intervention
22 juin 2017
9
il faut a mon avis tester la validité du numérique avec le methode

Double.TryParse en lui passant comme paramètre le CultureInfo.CurrentCulture

ce qui va transformer ton texte entré avec la culture du pc (pavé numérique donne le point ou la virgule) en double, si elle renvoit false, tu considères que ce n'est pas un numérique.

Bonne journée