Nous sommes actuellement le 03 Juil 2026, 20:09

Le fuseau horaire est UTC-5 heures [Heure d’été]




Publier un nouveau sujet Répondre au sujet  [ 11 message(s) ] 
Auteur Message
MessagePublié: 05 Mars 2005, 11:49 
Hors-ligne
Régulier
Régulier
Avatar de l’utilisateur

Inscription : 26 Fév 2003, 12:18
Message(s) : 443
Je suis sur un petit projet personnel et je demande à l'utilisateur de rentrer un nombre avec une virgule. Par contre j'aimerais que l'utilisateur puisse utiliser le . ou la , sans problème. J'ai pensé à faire un replace des . en , mais sa ne fonctionnera que sur une machine configurer pour utilisé la ,

J'aimerais pouvoir savoir qu'elle est le signe par défaut du system afin de convertir comme il faut.

P.S. Mon projet est en VB.Net avec les Windows Forms.

_________________
Asus A7N8X Deluxe v2.0 | Athlon XP Barton 2500+@3200+ | 1024mo DDR 3200 | BFG Geforce 6600GT 128mo | Western Digital 160go 7200rpm | Maxtor 40go 7200rpm | Altec Lansing ATP4 | Samsung SyncMaster 763MB | Fan CoolerMaster Aero 7+ | Sennheiser HD212 Pro


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 05 Mars 2005, 12:10 
Hors-ligne
Modérateur
Modérateur
Avatar de l’utilisateur

Inscription : 07 Jan 2002, 15:10
Message(s) : 3551
Localisation : Beauport, Québec
ceci devrait pouvoir régler ton problème:

http://forum.micro.info/viewtopic.php?p=371854#371854

_________________
Procyon,
Modérateur de la section Trouvailles


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 05 Mars 2005, 12:33 
Hors-ligne
Régulier
Régulier
Avatar de l’utilisateur

Inscription : 26 Fév 2003, 12:18
Message(s) : 443
Oui je sais comment remplacer un point par une virgule mais ce que je veut faire c'est détecter si je doit avoir une virgule ou un point puisque la valeur du textbox je la transforme ensuite en decimal .net mais ce format prend la valeur selon la config du system. Par exemple un system anglais prendra le point comme séparation des decimal alors qu'un system francophone prendra la virgule.

_________________
Asus A7N8X Deluxe v2.0 | Athlon XP Barton 2500+@3200+ | 1024mo DDR 3200 | BFG Geforce 6600GT 128mo | Western Digital 160go 7200rpm | Maxtor 40go 7200rpm | Altec Lansing ATP4 | Samsung SyncMaster 763MB | Fan CoolerMaster Aero 7+ | Sennheiser HD212 Pro


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 05 Mars 2005, 13:13 
Hors-ligne
Régulier
Régulier
Avatar de l’utilisateur

Inscription : 27 Juin 2002, 01:12
Message(s) : 458
Localisation : Québec
Je connais seulement VB6 (pas .NET) mais j'utilise une fonction appellée "isnumeric()"

Donc, si la valeur n'est pas numérique, on vérifie s'il y a une virgule ou un point dans la zone de texte et on la remplace.


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 05 Mars 2005, 14:00 
Hors-ligne
Modérateur
Modérateur
Avatar de l’utilisateur

Inscription : 07 Jan 2002, 15:10
Message(s) : 3551
Localisation : Beauport, Québec
the_connected a écrit:
Oui je sais comment remplacer un point par une virgule mais ce que je veut faire c'est détecter si je doit avoir une virgule ou un point puisque la valeur du textbox je la transforme ensuite en decimal .net mais ce format prend la valeur selon la config du system. Par exemple un system anglais prendra le point comme séparation des decimal alors qu'un system francophone prendra la virgule.


Mon code fait exactement et précisément ce que tu mentionne.

Mon code ne remplace pas juste une virgule par le point ou l'inverse, mon code remplace les virgules ET les points par le caractère qui est défini dans les paramètres du système.

_________________
Procyon,
Modérateur de la section Trouvailles


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 05 Mars 2005, 18:08 
Hors-ligne
Régulier
Régulier
Avatar de l’utilisateur

Inscription : 26 Fév 2003, 12:18
Message(s) : 443
Procyon a écrit:
the_connected a écrit:
Oui je sais comment remplacer un point par une virgule mais ce que je veut faire c'est détecter si je doit avoir une virgule ou un point puisque la valeur du textbox je la transforme ensuite en decimal .net mais ce format prend la valeur selon la config du system. Par exemple un system anglais prendra le point comme séparation des decimal alors qu'un system francophone prendra la virgule.


Mon code fait exactement et précisément ce que tu mentionne.

Mon code ne remplace pas juste une virgule par le point ou l'inverse, mon code remplace les virgules ET les points par le caractère qui est défini dans les paramètres du système.


Merci je vais essayer de convertir ça en vb quand j'aurait le temps et je vais tester.

_________________
Asus A7N8X Deluxe v2.0 | Athlon XP Barton 2500+@3200+ | 1024mo DDR 3200 | BFG Geforce 6600GT 128mo | Western Digital 160go 7200rpm | Maxtor 40go 7200rpm | Altec Lansing ATP4 | Samsung SyncMaster 763MB | Fan CoolerMaster Aero 7+ | Sennheiser HD212 Pro


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 05 Mars 2005, 20:18 
Hors-ligne
Occasionnel
Occasionnel
Avatar de l’utilisateur

Inscription : 06 Fév 2002, 22:42
Message(s) : 185
Localisation : Québec
En VB6 tu peux appeller l'API pour connaître les régionals settings.

Code :
' /=======================================\
' | MODULE:    modRegionalSettings
' | CREATED:   2004-05-11 13:09:03
' | COPYRIGHT:  Copyright ©1996-2002 VBnet, Randy Birch, All Rights Reserved.
' |            Terms of use http://www.mvps.org/vbnet/terms/pages/terms.htm
' :---------------------------------------:
' | DESCRIPTION:
' |
' | Ce module permet d'aller chercher les
' | paramètres du "regional settings".
' |
' \=======================================/

Option Explicit
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Copyright ©1996-2001 VBnet, Randy Birch, All Rights Reserved.
' Some pages may also contain other copyrights by the author.
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' You are free to use this code within your own applications,
' but you are expressly forbidden from selling or otherwise
' distributing this source code without prior written consent.
' This includes both posting free demo projects made from this
' code as well as reproducing the code in text or html format.
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Public Enum eLOCALE
   LOCALE_SDECIMAL = &HE         'decimal separator
   LOCALE_STHOUSAND = &HF        'thousand separator
   LOCALE_SGROUPING = &H10       'digit grouping
   LOCALE_IDIGITS = &H11         'number of fractional digits
   LOCALE_ILZERO = &H12          'leading zeros for decimal
   LOCALE_INEGNUMBER = &H1010    'negative number mode
   LOCALE_SNATIVEDIGITS = &H13   'native ASCII 0-9
   LOCALE_SPOSITIVESIGN = &H50   'positive sign
   LOCALE_SNEGATIVESIGN = &H51   'negative sign
   
   LOCALE_ILANGUAGE = &H1                'language id
   LOCALE_SLANGUAGE = &H2                'localized name of lang
   LOCALE_SENGLANGUAGE = &H1001          'English name of lang
   LOCALE_SABBREVLANGNAME = &H3          'abbreviated lang name
   LOCALE_SNATIVELANGNAME = &H4          'native name of lang
   LOCALE_ICOUNTRY = &H5                 'country code
   LOCALE_SCOUNTRY = &H6                 'localized name of country
   LOCALE_SENGCOUNTRY = &H1002           'English name of country
   LOCALE_SABBREVCTRYNAME = &H7          'abbreviated country name
   LOCALE_SNATIVECTRYNAME = &H8          'native name of country
   LOCALE_SINTLSYMBOL = &H15             'intl monetary symbol
   LOCALE_IDEFAULTLANGUAGE = &H9         'def language id
   LOCALE_IDEFAULTCOUNTRY = &HA          'def country code
   LOCALE_IDEFAULTCODEPAGE = &HB         'def oem code page
   LOCALE_IDEFAULTANSICODEPAGE = &H1004  'def ansi code page
   LOCALE_IDEFAULTMACCODEPAGE = &H1011   'def mac code page

   LOCALE_IMEASURE = &HD                  '0 = metric, 1 = US

'#if(WINVER >=  &H0400)
   LOCALE_SISO639LANGNAME = &H59         'ISO abbreviated language name
   LOCALE_SISO3166CTRYNAME = &H5A        'ISO abbreviated country name
'#endif /* WINVER >= &H0400 */

'#if(WINVER >=  &H0500)
   LOCALE_SNATIVECURRNAME = &H1008        'native name of currency
   LOCALE_IDEFAULTEBCDICCODEPAGE = &H1012 'default ebcdic code page
   LOCALE_SSORTNAME = &H1013              'sort name

End Enum

Public Declare Function GetThreadLocale Lib "kernel32" () As Long

Public Declare Function GetUserDefaultLCID Lib "kernel32" () As Long

Public Declare Function GetLocaleInfo Lib "kernel32" _
   Alias "GetLocaleInfoA" _
  (ByVal Locale As Long, _
   ByVal LCType As Long, _
   ByVal lpLCData As String, _
   ByVal cchData As Long) As Long
   
Public Function GetUserLocaleInfo(ByVal dwLCType As eLOCALE) As String

   Dim sReturn As String
   Dim r As Long
   Static LCID As Long
   
   If LCID = 0 Then
      LCID = GetUserDefaultLCID()
   End If
 
  'call the function passing the Locale type
  'variable to retrieve the required size of
  'the string buffer needed
   r = GetLocaleInfo(LCID, dwLCType, sReturn, Len(sReturn))
   
  'if successful..
   If r Then
   
     'pad the buffer with spaces
      sReturn = Space$(r)
       
     'and call again passing the buffer
      r = GetLocaleInfo(LCID, dwLCType, sReturn, Len(sReturn))
     
     'if successful (r > 0)
      If r Then
     
        'r holds the size of the string
        'including the terminating null
         GetUserLocaleInfo = Left$(sReturn, r - 1)
     
      End If
   
   End If
   
End Function


Fouille un peu, peut-être qu'il y a l'équivalent en dot NET.

_________________
HTH

:arrow: This posting is provided "AS IS" with no warranties, and confers no rights cr*sse!


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 05 Mars 2005, 21:30 
Hors-ligne
Modérateur
Modérateur
Avatar de l’utilisateur

Inscription : 07 Jan 2002, 15:10
Message(s) : 3551
Localisation : Beauport, Québec
the_connected a écrit:
Merci je vais essayer de convertir ça en vb quand j'aurait le temps et je vais tester.


Huh? C'est déjà en VB.

Y'a-t-il un problème? On dirait que tu n'a même pas lu mes 3 lignes de codes et que tu essayes de croire que mon code ne fera pas ce que tu désires. Mon code intégral fait parfaitement ce que tu veux en VB.NET, je trouve tes réactions vraiment bizarres. Anyway... à moins que ça ne fasse pas vraiment ce que tu désires, alors là vaudrait mieux le dire directement, ça éviterais la confusion.

Ouvre VB.NET et crée un projet Windows Application, met 2 textbox dans une Windows Form que tu appelles TextBox1 et TextBox2 et un bouton. Dans le onclick du bouton, écris ceci intégralement (remarque que c'est intégralement identique à ce que je t'ai donné plus tôt sauf le nom des variables et les déclarations):

Code :
        Dim nbdec As Integer, NombreCorrige As Double
        nbdec = Len(TextBox1.Text) - (InStr(TextBox1.Text, ".") + InStr(TextBox1.Text, ","))
        NombreCorrige = CDbl(Replace(Replace(TextBox1.Text, ".", ""), ",", "")) / (10 ^ nbdec)
        TextBox2.Text = CStr(NombreCorrige)


et écris 2.55 ou 2,55 et clique sur le bouton, ça va convertir le tout selon tes paramètres régionaux.

_________________
Procyon,
Modérateur de la section Trouvailles


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 06 Mars 2005, 00:03 
Hors-ligne
Régulier
Régulier
Avatar de l’utilisateur

Inscription : 26 Fév 2003, 12:18
Message(s) : 443
Merci beaucoup, désolé pour mes réactions bizard, je n'était pas chez moi lorsque je vous aient répondu, donc j'ai regarder un peu vite. Je vais essayer ça demains et ça devrais marché.

Merci encore beaucoup.

_________________
Asus A7N8X Deluxe v2.0 | Athlon XP Barton 2500+@3200+ | 1024mo DDR 3200 | BFG Geforce 6600GT 128mo | Western Digital 160go 7200rpm | Maxtor 40go 7200rpm | Altec Lansing ATP4 | Samsung SyncMaster 763MB | Fan CoolerMaster Aero 7+ | Sennheiser HD212 Pro


Haut
 Profil  
Répondre en citant  
 Sujet du message: currentculture
MessagePublié: 12 Mars 2005, 20:30 
Hors-ligne
Petit nouveau
Petit nouveau

Inscription : 16 Sep 2004, 08:03
Message(s) : 9
Tu doit utiliser les instructions CultureInfo.CurrentCulture et CultureInfo.CurentUiCulture...

plus de détail a l'adresse suivante :

http://msdn.microsoft.com/library/defau ... etopic.asp


Haut
 Profil  
Répondre en citant  
 Sujet du message: Re: currentculture
MessagePublié: 12 Mars 2005, 20:46 
Hors-ligne
Nouvel adepte
Nouvel adepte

Inscription : 07 Fév 2002, 11:04
Message(s) : 82
Localisation : Ste-Julie
doogie69 a écrit:
Tu doit utiliser les instructions CultureInfo.CurrentCulture et CultureInfo.CurentUiCulture...

plus de détail a l'adresse suivante :

http://msdn.microsoft.com/library/defau ... etopic.asp


C'est ce que j'allais dire. Travaille avec les cultures...


Haut
 Profil  
Répondre en citant  
Afficher les messages publiés depuis :  Trier par  
Publier un nouveau sujet Répondre au sujet  [ 11 message(s) ] 

Le fuseau horaire est UTC-5 heures [Heure d’été]


Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 1 invité


Vous ne pouvez pas publier de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum

Recherche de:
Aller vers :  
cron
Propulsé par phpBB® Forum Software © phpBB Group
Traduction et support en françaisHébergement de site