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 :

Test de comparaison


Sujet :

VB 6 et antérieur

  1. #1
    Candidat au Club
    Inscrit en
    Juin 2003
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 2
    Par défaut Test de comparaison
    Bonjour a tous !!
    Voila, je suis confronté à un probléme, le voici :
    dans mon programme Visual Basic, je doit tester à un moment si les variables a, b, c, d, e, f, g, h, et i (9 variables au total) ne sont pas égales deux à deux, si l'une d'entre elles est égales a n'importe qu'elle autre des variable (sauf elle même bien sur), alors, OK = 1 sinon, OK = 0
    J'avai pensé à ceci :

    if a <> b <> c <> d <> e <> g <> h <> i then OK=1 else OK = 0

    mais ca ne marche pas, quelqu'un aurai une idée ??
    Merci d'avance !

  2. #2
    Membre Expert
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Par défaut
    deux solution:
    où bien tu écris tes 36 possibilités, c'est pas trop long.
    où bien tu stocke tes 9 variables dans une liste (que j'apelle malist) et tu met:
    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
    public function isegal2a2 (liste() as integer, optional prov as integer) as boolean 
    'revoie true si vrai, sinon false
    dim i as integer
    for i=0 to Ubound(liste,1)
       if i<>prov and liste(prov)=liste(i) then
         isegal2a2=true
         exit function
       end if
    next i
    if isegal2a2(liste,prov+1)=true then 
        isegal2a2=true
        exit function
    end if
    isegal2a2=false
    end function
    voilà une petite récursive pour n'importe quel nombre de chiffres

    pour l'appeler:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    dim malist(8) as integer
    malist(0)=a
    malist(1)=b
    .
    .
    .
    malist(8)=i
     
    if isegal2a2(malist)=true then msgbox "OK=1" else msgbox "ok=0"
    (tu te débrouillera pour incrémenter ok tout seul ^^)

    je crois que c'est complet.

    salut

  3. #3
    Membre éprouvé
    Inscrit en
    Juin 2005
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 93
    Par défaut
    salut
    si les valeurs attendues sont prévisible, comme par example a=1 b=2 c=3 d=4 e=5, tu pourrais en faire la somme, comme dans ce cas ci, si le total n'est pas 15, il y a problème.
    sinon je crois que tu n'a guère de choix que de faire une longue ligne de comparaison en incluant toutes les combinaisons possible...
    ce qui ressemblerais à..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If a<>b And a<>c And a<>d...
    en continuant ensuite avec b<>c,d,e...
    c<>d,e,f..
    d<>e,f,g..
    jusqu'à avoir couvert toutes les combinaisons.

    il n'y en aura pas de facile

  4. #4
    Membre Expert
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Par défaut
    Non, la preuve
    sinon, c'est vrai que 36 possibilité, c'est pas la mort


    enfin vu que je t'ai livré une fonction toute prète^^, autemps l'utiliser (embalé, c'est pesé)

    salut

  5. #5
    Membre éprouvé
    Inscrit en
    Juin 2005
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 93
    Par défaut
    en effet c'est une jolie fonction méphistopheles
    que je vais de ce pas te 'volé' par un copier coller pour usage future si le besoin se présente

    ne m'en veux pas trop je vole pas souvent

  6. #6
    Membre Expert
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Par défaut
    -"Non non, pas de problème."
    //me Sort mon fusil
    -"Attention à ce qu'on ne te coupe pas les aile, tu pourrais tomber!!"

    salut

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

    Informations forums :
    Inscription : Novembre 2005
    Messages : 53
    Par défaut
    je me ferais bien un "select case" sur les n variables
    si égal à 1 c que la valeur est unique,
    sinon, elle des des doublons

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

    Informations forums :
    Inscription : Novembre 2005
    Messages : 53
    Par défaut
    j'ai plus de licence donc je fais dans le word pad ...

    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
    a = valeur a
    b = valeur b
    c = valeur c
    ....
     
    trouvé = 0
    trouvé$ = ""
     
    i ma valeur de test
     
    select case i
     
    	case a = i
    		trouvé = trouvé + 1
    		trouvé$ = trouvé$ + " a "
    	case b = i
    		trouvé = trouvé + 1
    		trouvé$ = trouvé$ + " b "
    	case c = i
    		trouvé = trouvé + 1
    		trouvé$ = trouvé$ + " c "
     
    ...
     
    	case i = i
    		trouvé = trouvé + 1
    		trouvé$ = trouvé$ + " i "
     
    end select
     
    si trouvé > 1 
    print "j'ai trouvé chez :" trouvé$

    si ça peut t'aider ...

  9. #9
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Par défaut
    une autre solution et qui resterait applicable avec un grand nombre
    de variables est de placer les valeurs dans un vecteur
    array(n)
    de trier le vecteur
    de le parcourir en testant
    monvect(n)=mnvecteur(n+1)
    on peut aussi le faire avec une liste en y ajoutant les valeurs au fur et à mesure de la lecture à leur place
    en placant les valeurs dans un recordset en sgbd en grupant un group by et un count la réponse est immédiate count>=2

  10. #10
    Membre Expert
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Par défaut
    Helo crasygun, t'est là?
    3 solutions t'onts été proposées, ça te va?

    (je vais signer la pétition de ouskel anti-non-répondeur moi).


    salut

Discussions similaires

  1. Test de comparaison de moyennes (Tjrs significatif)
    Par Lasse dans le forum SAS STAT
    Réponses: 2
    Dernier message: 18/06/2012, 16h30
  2. Test de comparaison de moyennes sur séries appariées
    Par mathis86 dans le forum SAS STAT
    Réponses: 9
    Dernier message: 14/03/2012, 17h08
  3. Test de comparaison
    Par NemoParis dans le forum SAS STAT
    Réponses: 6
    Dernier message: 20/08/2010, 14h56
  4. [Trucs&astuces] Tests et Comparaison de chaînes
    Par I'm_HERE dans le forum Scripts/Batch
    Réponses: 0
    Dernier message: 29/07/2009, 18h55
  5. Test de comparaison
    Par CélineM dans le forum SAS STAT
    Réponses: 7
    Dernier message: 15/04/2008, 11h59

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