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 :

[VB6] Petite question avec "select case ... end case"


Sujet :

VB 6 et antérieur

  1. #1
    Membre régulier Avatar de Lucas42
    Inscrit en
    Janvier 2006
    Messages
    301
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 301
    Points : 97
    Points
    97
    Par défaut [VB6] Petite question avec "select case ... end case"
    Bonjour , comme vous pouvez le voir , j'utilise un select case dans mon programme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub Option1_Click(Index As Integer)
    Select Case Index
        Case 0
            POSITION = 2
        Case 1
            POSITION = 5
        Case 2
            POSITION = -2
        Case 3
            POSITION = 6
        Case 4
            POSITION = 4
    End Select
    End Sub
    le nombre situé à droite de case , correspond à un nombre identique au BITS recu par le pc , or il me faudrai un 6iéme case me permettant d'afficher un message d'erreur si le Bit recu n'est pas : 0 - 1 - 2 - 3 - 4 , mais je ne sais pas comment l'ecrire dans le select case .

    merci d'avance
    amicalement lucas

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040

  3. #3
    Membre régulier Avatar de Lucas42
    Inscrit en
    Janvier 2006
    Messages
    301
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 301
    Points : 97
    Points
    97
    Par défaut
    oui , j'ai encore mal exprimé ma requete

    en fait regarde
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub ImgVanne()
        Image1(0).Visible = (Form1.POSITION = 0)
        Image1(1).Visible = (Form1.POSITION = 1)
        Image1(2).Visible = (Form1.POSITION = 2)
        Image1(3).Visible = (Form1.POSITION = 3)
        Image1(4).Visible = (Form1.POSITION = 4)
        Image1(5).Visible = (" Form1.POSITION <0 OR Form1.POSITION >4") je c po si je peut ecrire ca
    End Sub
    j'utilise la valeur de POSITION pour me permettre d'afficher des images , or comme la je travail en TEST , c moi qui attribue les valeurs de POSITION grace à des OptionButton , dans l'avenir il n'y aura plus ces OptionButton , mais Une vanne relié au pc , qui envera le bits au programme , donc il faudrai que je puisse faire un truc dans ce genre la

    case 0
    .........
    case 1
    .........
    .........
    case <0 OR >4 et pas else
    ........
    es ce possible ??

  4. #4
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Tout celà est fort bien expliqué, avec exemples à l'appui, dans l'aide en ligne !
    Dis-nous, Lucas : tu la consultes, de temps à autre ?

    Voilà en effet plusieurs fois que tu poses des questions élémentaires dont la réponse se trouve, exposée clairement, dans l'aide en ligne !
    Je m'interroge donc sérieusement !

  5. #5
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    et pourquoi tu ve faire un case ton code ne convient-(il pas ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Sub ImgVanne()
        Image1(0).Visible = (Form1.POSITION = 0)
        Image1(1).Visible = (Form1.POSITION = 1)
        Image1(2).Visible = (Form1.POSITION = 2)
        Image1(3).Visible = (Form1.POSITION = 3)
        Image1(4).Visible = (Form1.POSITION = 4)
        Image1(5).Visible =  (Form1.POSITION <0 OR Form1.POSITION >4 )
    End Sub

  6. #6
    Membre régulier Avatar de Lucas42
    Inscrit en
    Janvier 2006
    Messages
    301
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 301
    Points : 97
    Points
    97
    Par défaut
    si le case va bien , mais c'est qu'en fait mon AUTOMATE envoie au pc des bits correspondants à l'etat de la vanne :
    bit 0 si vanne FERMEE
    bit 1 si vanne OUVERTE
    bit 2 si vanne en DEFAUT
    bit 0 & 3 si vanne FORCEE OUVERTE & intialement FERMEE
    bits 1 & 3 si vanne FORCEE OUVERTE & intialement OUVERTE
    bits 0 & 4 si vanne FORCEE FERMEE & initialement FERMEE
    bits 1 & 4 si vanne FORCEE FERMEE & initialement OUVERTE
    bits <0 ou >4 si la vanne est en position INDEFINIE
    Bien sur , pour visualiser la position de la vanne sur un superviseur , chaque bit correspond à une image precise , d'ou l'utilisation :
    - d'un case pour interpreté le bit
    - d'un sub image vanne pour faire correspondre l'image

    BIEN SUR , j'ai reussi à faire fonctionner cela , seulement pour vanne OUVERTE , FERMEE , DEFAUT car ca depend que d'un bit .

    Les autres cas dependent de 2 bits , donc c'est la que je suis coincé pour faire un case selon 2 infos ....

  7. #7
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    pour tester les bits .. tu peu utiliser la fonction AND ...

  8. #8
    Membre régulier Avatar de Lucas42
    Inscrit en
    Janvier 2006
    Messages
    301
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 301
    Points : 97
    Points
    97
    Par défaut
    ben non je peut pas utiliser la fonction AND , car le bit et <0 OU >4 , il pe pas etre <0 ET >4

  9. #9
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Citation Envoyé par Lucas42
    si le case va bien , mais c'est qu'en fait mon AUTOMATE envoie au pc des bits correspondants à l'etat de la vanne
    Oula...

    Ton automate arrive à envoyer un bit tout seul (le 2, par exemple) sans envoyer les autres???

    Qu'est-ce qui permet au PC de savoir de quel bit il s'agit?

    L'automate n'envoie-t-il pas un byte ou "mot" à la fois?

    Il me semble que tu te compliques singulièrement la vie là où quelques AND permettraient de s'en sortir facilement.

    Eclaire notre lanterne avant qu'on continue à s'embourber dans un code tordu.

  10. #10
    Membre régulier Avatar de Lucas42
    Inscrit en
    Janvier 2006
    Messages
    301
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 301
    Points : 97
    Points
    97
    Par défaut
    oui oui , l'automate envoie exactement le bit qu'il faut , sauf qd la vanne est en position indefinie , il envoie nimporte koi , sauf 0 , 1 , 2 , 3 , 4
    donc il me faut , un bou de code me permettant de voir si le bit recu et <0 ou >4

    tkt g plus dongle depuis ce midi , ca fait 4h ke je suis sur ce pb

  11. #11
    Membre habitué
    Inscrit en
    Mai 2002
    Messages
    163
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 163
    Points : 173
    Points
    173
    Par défaut
    ne traite pas bit à bit, converti en décimale la valeur retourner par l'automate ...

    jusqu'a preuve du contraire
    en binaire 0001 = 1 en décimal : ta vanne ouverte
    en binaire 0010 = 2 en décimal : ta vanne fermée
    en binaire 0100 = 4 en décimal : ta vanne en défaut
    en binaire 1001 = 9 en décimal : vanne FORCEE OUVERTE & intialement FERMEE
    en binaire 1010 = 10 en décimal : vanne FORCEE OUVERTE & intialement OUVERTE
    etc ...

    et je maintiens qu'un case else suffit sinon

    tu peux également le faire avec des and, or ... xor

  12. #12
    Membre régulier Avatar de Lucas42
    Inscrit en
    Janvier 2006
    Messages
    301
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 301
    Points : 97
    Points
    97
    Par défaut
    merci bhaal76 pour les precision sur la conversion en décimale , je ne lai pas mentionner car cela n'affecte en rien la réalisation du programme , et ca evite au gens de s'embrouiller la tete ^^

    je vais tester avec des AND ...

  13. #13
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Citation Envoyé par Lucas42
    donc il me faut , un bou de code me permettant de voir si le bit recu et <0 ou >4
    Tu parles, quand même bien, de position(s) de bit(s)???

    Or, qui dit position, dit dans quoi.

    Je suis à peu près certain que l'automate envoie un byte ou un mot avec certains bits positionnés à 1 (et, accessoirement, les autres à 0).

    Il faudra donc me dire comment (la position d') un bit peut être inférieure à 0.

    Pour le reste, je pense que bhaal76 a bien synthétisé les états possibles en proposant de traiter les valeurs décimales.

  14. #14
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    0 - 1 - 2 - 3 - 4 => 0000 0001 0010 0100 1000
    Si tu peux convertir tes mots en string, tu as une solution plus proche de l'automatisme et du And du C
    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
     
    Sub LikeAndArray()
    Dim Tonbit, index, ok as boolean
        Tonbit = "0010"  'Le bit testé converti en string
        BitV = Array("0000", "0001", "0010", "0100", "1000")
        For index = 0 To 4
            ok = Tonbit Like BitV(index)
            If ok Then Exit For
        Next
        Select Case index
            Case 0
                MsgBox index & " Position = " & 2
                Position = 2
            Case 1
                MsgBox index & " Position = " & 5
                Position = 5
            Case 2
                MsgBox index & " Position = " & -2
                Position = -2
            Case 3
                MsgBox index & " Position = " & 6
                Position = 6
            Case 4
                MsgBox index & " Position = " & 4
                Position = 4
            Case else
                Msgbox "y'a un truc qui va pas !"
        End Select
    End Sub
    Si tu peux tirer quelque chose de ça

    A+

  15. #15
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    Citation Envoyé par Lucas42
    ben non je peut pas utiliser la fonction AND , car le bit et <0 OU >4 , il pe pas etre <0 ET >4
    demande à ton collégue automaticien... filtre...

  16. #16
    Membre régulier Avatar de Lucas42
    Inscrit en
    Janvier 2006
    Messages
    301
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 301
    Points : 97
    Points
    97
    Par défaut
    lol BBIL , je ne serai pas venu sur le forum si mon AUTOMATICIEN etait là , il est congé jusqu'a mardi 9 mai :s

  17. #17
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Citation Envoyé par AlainTech
    Il faudra donc me dire comment (la position d') un bit peut être inférieure à 0.
    Pourrais-tu répondre à cette question?

  18. #18
    Membre régulier Avatar de Lucas42
    Inscrit en
    Janvier 2006
    Messages
    301
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 301
    Points : 97
    Points
    97
    Par défaut
    ben , je te lit ce ki est ecrit sur la notice constructeur :
    Variable Etat_van : cette info permet l'animation d'un superviseur
    =0 vanne position indefinie (bit<0 ou bit>4)
    =1 vanne fermée (bit 0)
    =2 vanne ouverte (bit 1)
    =4 vanne en defaut (bit 2)
    =9 vanne forcée ouverte et fermée (bit0&3)
    ..............................................
    voila ^^

  19. #19
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    Citation Envoyé par Lucas42
    ben , je te lit ce ki est ecrit sur la notice constructeur :
    voila ^^
    on peu savoir est le constructeur

  20. #20
    Membre régulier Avatar de Lucas42
    Inscrit en
    Janvier 2006
    Messages
    301
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 301
    Points : 97
    Points
    97
    Par défaut
    c'est une vanne de la marque Siemens , la notice à etait réaliser par les patrons de la société Vinci Santerne centre est , plus precisement ACTEMIUM

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. petite question avec $_SERVER['PHP_SELF']
    Par akara dans le forum Langage
    Réponses: 4
    Dernier message: 04/09/2007, 07h06
  2. Petit question avec un string
    Par takepaf dans le forum VBA Access
    Réponses: 2
    Dernier message: 06/06/2007, 11h07
  3. Petite question avec Procédure??
    Par STRUFIELD dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 07/12/2005, 09h12
  4. []Problème avec un "Select Case" : Instructions et..
    Par Olun dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 07/09/2005, 13h32

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