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 :

virgule problématique vb6


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 30
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 89
    Par défaut virgule problématique vb6
    bonjour,

    le résultat d'une de mes requête est 0,313131313131,0000
    j'aurai aimé savoir comment il est possible de ne garder que la serie de 31

    j'ai tout d'abord essayer replace(txt, "," ,"") mais il restait les zero
    apres j'ai fais le même pour les zero sauf que le code etant du hexadecimal il arrive que le resultat soit 0,636F7520636775,0000 et la sans le zero la traduction est impossible.

    je voudrais faire en sorte de supprimer ici les deux premiers et les 5 derniers si les virgules sont conservés, maiiiis c quoi la commande svp?

    merci a vous

  2. #2
    Membre éprouvé
    Homme Profil pro
    Analyste développeur VB6, SQL, VB.NET, C#
    Inscrit en
    Avril 2003
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Analyste développeur VB6, SQL, VB.NET, C#
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2003
    Messages : 111
    Par défaut
    bonjour,

    tu mets ton résultat dans une variable de type String puis utilise la fonction Split sur cette variable (voir MSDN pour l'utilisation de la fonction).

    cdlt,

  3. #3
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 30
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 89
    Par défaut
    ca ne peu pas marcher car la fonction me retourner mes premiers caractères
    hors, je dois les supprimer.

    l'avantage, je sais que ce seront toujours les deux premiers à ne pas garder
    l'inconvénient est que la taille à la fin est variable, si la requete concerne deux adresses max 3 derniers caractère à effacer, 4 adresses 5 caracteres a la fin, 6 adresse 7caractere etc

    donc si 0,123456789055,0000
    jdois obtenir 123456789055

    la chaine à traiter le resultat d'une requête qui lit dans un tag a des adresses spécifiées.

    vous n'auriez pas une toute pitite pitite aide pour une gomme?

  4. #4
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 131
    Par défaut
    Citation Envoyé par littledoudou Voir le message
    bonjour,

    tu mets ton résultat dans une variable de type String puis utilise la fonction Split sur cette variable (voir MSDN pour l'utilisation de la fonction).

    cdlt,
    Citation Envoyé par gomtex Voir le message
    ca ne peu pas marcher car la fonction me retourner mes premiers caractères
    hors, je dois les supprimer.
    .../...
    Quand on te fournit une réponse, commence par la comprendre et faire la recherche appropriée
    avant d'affirmer ton «Ça ne peut marcher ...»

  5. #5
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 30
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 89
    Par défaut
    ok mais j 'arrive pas a la tourner,

    on met split(variable, ",")? parce moi ca me met une erreur, j arrive pas a la tourner comme il faut

  6. #6
    Membre Expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Par défaut
    Si tu veux une solution toute faite, tu peux faire ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Dim Ch
    Ch = "0,123456789055,0000"
    Ch = Mid(Ch, 3, Len(Ch) - 7)
    Debug.Print Ch
    Voir l'aide de VB pour Mid, Len, Right, Left, ça peut toujours servir.

  7. #7
    Membre éprouvé
    Homme Profil pro
    Analyste développeur VB6, SQL, VB.NET, C#
    Inscrit en
    Avril 2003
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Analyste développeur VB6, SQL, VB.NET, C#
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2003
    Messages : 111
    Par défaut
    re...

    concernant la solution avec le Split:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Dim strResultatBrut as String
    Dim strResultatTraite as String
     
    strResultatBrut = "0,123456789055,0000"
     
    '0,123456789055,0000
    '<0>,<123456789055>,<0000>
    '<index=0>,<index=1>,<index=2>
     
    strResultatTraite = Split(strResultatBrut, ",")(1)
    'strResultatTraite a pour valeur "123456789055"
    'et ce quelque soit la longueur de ta 1ère et 3ème partie
    cdlt,

  8. #8
    Membre éprouvé
    Homme Profil pro
    Analyste développeur VB6, SQL, VB.NET, C#
    Inscrit en
    Avril 2003
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Analyste développeur VB6, SQL, VB.NET, C#
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2003
    Messages : 111
    Par défaut
    ucfoutu, le Val() risque de poser problème avec les valeurs hexa renvoyées par sa fonction...

    cdlt,

  9. #9
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 30
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 89
    Par défaut
    ok merci a tous,
    ps: oui je suis un débutant en vb6^^
    et je risque de devoir passer en vba, c'est la meme chose?

    desole pour le derangement

  10. #10
    Membre Expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Par défaut
    VBA ressemble à VB6 (il y a de nombreux points communs) mais ce n'est pas tout à fait la même chose.
    Si tu avais des questions à propos de VBA, merci d'utiliser le forum spécifique à VBA.
    En attendant, si la solution donnée te convient, tu peux cliquer sur le tag "Résolu" en bas de page.

  11. #11
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 30
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 89
    Par défaut
    bonjour, ce sujet revient encore une fois et oui!!

    j'aurai une seule question, la fonction donnée par littledoudou marche tres bien, jusque la pas de problème. Jusqu'au jour ou mon programme m'indique que j'ai un indice hors de la plage et il m'indique a chaque fois la fonction split
    et je l'utilise tout au long de mon programme, ce n'est qu'au bout d'un certain nombre d'utilisations que cela se produit.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    date1 = "RD0052,04" + Chr(13)
        MSComm3.Output = date1
        Sleep 550
        jour1 = MSComm3.Input
    ==>    Text3.text = Split(jour1, ",")(1)
        Text3.text = HexDeCrypt(Text3.text)
        jour1 = Mid(Text3.text, 1, 2)
        Text3.text = Clear
    quelqu'un pourrai me dire pourquoi ceci me fait une erreur?
    merci

  12. #12
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonjour,

    ta question met en exerque que tu n'as pas compris que split conduisait à un Array.... !

    Je te réponds personnellement en t'invitant à ce petit test :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    toto = "aaaa bbbb"
    If InStr(toto, ",") Then
      MsgBox Split(toto, ",")(1)
    Else
      MsgBox "pas de virgule et donc pas d'index 1 et tu aurais alors eu ton erreur"
    End If
    Il devrait te faire comprendre certaines choses (j'espère).

    EDIT : quant à une solution (toujours simple) à un problème sur la chaîne traitée, elle dépend de ce que tu souhaites extraire (une valeur 0, une chaine vide, une booléenne, un N0 d'erreur, etc...) de la chaîne traitée lorsque virgule absente...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VB6] Lecture fichier texte - Probleme virgule = saut de ligne
    Par Zaal dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 13/09/2006, 08h16
  2. [VB6] mettre en commentaires...
    Par nd25 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 19/04/2004, 15h15
  3. [VB6] [MDI] Signaler la fermeture d'une fille à la mère
    Par cpri1shoot dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 13/04/2004, 08h57
  4. Réponses: 1
    Dernier message: 22/08/2002, 17h00
  5. Chiffre a Virgule Fixe
    Par garybaldi dans le forum C
    Réponses: 3
    Dernier message: 21/06/2002, 10h41

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