IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

séparateur décimal


Sujet :

VB 6 et antérieur

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 13
    Points : 11
    Points
    11
    Par défaut séparateur décimal
    Bonjour à tous,
    J'ai un programme VB6 qui s'est mis à ne plus fonctionner le jour ou j'ai re installé windows et j'ai compris au bout de qq temps que win avait la "virgule" comme séparateur décimal, et que j'avais fait le programme avec le "point". Dès que j'ai changé la virgule en pt dans les paramètres régionaux tout est rentré dans l'ordre. Pour éviter de retrouver ce problème dès que je l'installe sur une nouvelle machine, Je voudrais savois s'il n'est pas possible de spécifier le type de séparateur utillisé dès le chargement du programme.
    Quelqu'un à une idée ?
    A bientot,
    Lionel

  2. #2
    Membre régulier
    Inscrit en
    Juin 2005
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 93
    Points : 92
    Points
    92
    Par défaut
    salut
    si tu veux dire le modifier, je te suggère pas de modifier les paramètres utilisateurs, ce n'est pas une très bonne facon de faire.
    c'est le bobo avec VB d'avoir à construire le code de sorte à gérer les 2 possibilités.

    j'ai ce code à placé dans un module pour connaitre le séparateur...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    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 Declare Function GetUserDefaultLCID Lib "kernel32" () As Long
     
    Public Const LOCALE_IDATE = &H21          'format de date courte : 0 = M-J-A, 1 = J-M-A, 2 = A-M-J
    Public Const LOCALE_ILDATE = &H22         'format de date longue
    Public Const LOCALE_SCOUNTRY = &H6        'pays en toutes lettres
    Public Const LOCALE_SNATIVELANGNAME = &H4 'langue, en toutes lettres
    Public Const LOCALE_STHOUSAND = &HF       'séparateur des milliers
    Public Const LOCALE_SDECIMAL = &HE        'séparateur décimal
     
    Public SeparateurDecimal As String
     
     
    'Au démarrage du programme, ajouter l'appel suivant
    ' SeparateurDecimal = ParametreRegional(LOCALE_SDECIMAL)
     
     
     
    Public Function ParametreRegional(parametre As Long) As String
    Dim lngResultat As Long
    Dim buffer As String
    Dim pos As Integer
    Dim locale As Long 'récupère l'identifiant de l'information locale de type utilisateur
    locale = GetUserDefaultLCID() 'renvoie le nombre de caractères nécessaire pour recevoir la valeur du paramètre demandé
    lngResultat = GetLocaleInfo(locale, parametre, buffer, 0)
    buffer = String(lngResultat, 0)
    GetLocaleInfo locale, parametre, buffer, lngResultat
    pos = InStr(buffer, Chr(0))
    If pos > 0 Then ParametreRegional = Left(buffer, pos - 1)
     
    End Function
    si ca te conviens

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 53
    Points : 59
    Points
    59
    Par défaut
    sur la dates, je m'étais fait ma propre routine qui lisait la cahine de caractères
    dès qu'elle rencontrait un "non numérique"
    c'était un séparateur que je remplaçait par le mien par exexemple : "/"
    puis je vérifias le nombre de jour, puis que les mois soient entre 1 et 12 ...
    c une routine fort simple
    (désolé de ne pouvoir la fournir n'ayant plus de VB)

    oui il y a qq minutes à passer pour cela, mais quel confort ...
    en plusieurs dizaines d'année d'utilisation mon logiciel ne c ja mais "planté" sur une date, malgré toutes les évolutions de gwbasic sur DOS à VB ...
    les données entrées dans une zone de date de cette manière 1!12m97 se voyait transformée en : 1/12/1997 ou 1.12.1997 et enregistrée sur disque 19971201 (c mieux pour les tris) ...
    ... j'en dormais super bien la nuit ....

Discussions similaires

  1. [VB.NET]Problème de séparateur décimal [débutant]
    Par Cantalou dans le forum Windows Forms
    Réponses: 5
    Dernier message: 03/03/2006, 13h37
  2. [ASIQ]Séparateur décimal
    Par ALLB dans le forum Sybase
    Réponses: 5
    Dernier message: 15/02/2006, 08h34
  3. [C#] Comment modifier le séparateur décimal ?
    Par vincent.e dans le forum C#
    Réponses: 5
    Dernier message: 12/01/2006, 23h07
  4. séparateur décimale
    Par robris dans le forum Oracle
    Réponses: 4
    Dernier message: 20/10/2005, 11h09
  5. [CR8.5][Oracle8] Séparateur décimal ignoré
    Par chrilie73 dans le forum SAP Crystal Reports
    Réponses: 9
    Dernier message: 06/06/2005, 18h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo