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 :

boucle while avec Or qui ne marche pas


Sujet :

VB 6 et antérieur

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    683
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 683
    Points : 237
    Points
    237
    Par défaut boucle while avec Or qui ne marche pas
    Bonjour,

    J'ai un soucis. Je lis un fichier txt (1 info par ligne) et je boucle dessus.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    While LigneLue1 <> "#DEBUT" OR LigneLue1 <> "#FIN"
                            Line Input #1, LigneLue1
     
                                If LigneLue1 <> "#DEBUT" Then
                                    Print #2, LigneLue1
                                End If  ' fin du test
                        Wend
    Mon pb est qu'il semble ignorer mon "OR" dans la boucle WHILE.

    Dés que j'atteinds une ligne avec le mot "#FIN" la boucle While se fait quand même.

    Auriez vous une idée ?

    P.S. : j'ai cherché sur le forum mais malheuresement en mettant WHILE, j'otiens aucun résultat, mot trop courant.

    Thibault

  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
    Par défaut
    bonsoir,

    essai de traduire cela en français :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    While LigneLue1 <> "#DEBUT" OR LigneLue1 <> "#FIN"
    cela donne un truc du genre ..:

    Boucle Tant que (LigneLue1 et différent de "#DEBUT") ou (LigneLue1 différent "#FIN")

    , tu arrête de boucler quand ?

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    683
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 683
    Points : 237
    Points
    237
    Par défaut
    Merci pour ta réponse.

    mais justement, je ne pige pas.

    Pour moi, je lui dis de boucler tant que c'est différent --> Donc --> si c'est pas différent d'arrêter de boucler ?


    J'ai l'impression de mal piger mon erreur ?

    Merci pour votre aide
    Thibault

  4. #4
    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 tibofo Voir le message
    ...
    Pour moi, je lui dis de boucler tant que c'est différent --> Donc --> si c'est pas différent d'arrêter de boucler ?...
    non tu dis de boucler tant qu'il est différent de "#DEBUT"
    OU
    différent de "#FIN"

    donc si tu prends l'expression inverse, tu arrête de boucler quand

    LigneLue= "#DEBUT" ET LigneLue = "#FIN" ... donc tu arrête de boucler

    quand "#DEBUT" = "#FIN"

  5. #5
    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
    Points : 5 537
    Points
    5 537
    Par défaut
    Bonjour,

    ne comprends-tu pas que ton Or fait que ce sera toujours vrai, de toutes manières et quoi que tu fasses ?
    Le While est une manière d'expression conditionnelle (comme un If).
    Commen peut-on écrire
    Si c'est différent de bleu ou que c'est différent de rouge ?
    Réfléchis !
    Si c'est différent de bleu ===>> condition vérifiée (quelle que soit la couleur)
    Si c'est différent de rouge ====>> condition vérifiée, quelle que soit la couleur
    Si c'est bleu, c'est alors forcément différent de rouge ===>> condition donc également vérifiée
    Si c'est rouge, c'est alors forcément différent de bleu ===>> condition donc également vérifiée

    Comme tu le vois, ce n'est ici que de la logique, avant même de parler de VB.
    Amitiés et bonne concentration.

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    683
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 683
    Points : 237
    Points
    237
    Par défaut
    super merci pour vos réponses.

    Même si mon neurone (le seul actif ce soir, j'ai vraiment l'impression de comprendre au ralentit ce soir !!) comprends vos explications.

    Je ne comprends pas alors comment lui dire "arrête de boucler si cest #DEBUT ou si c'est #FIN ??

    Merci
    Rain Man

  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
    Citation Envoyé par tibofo Voir le message
    ....
    Je ne comprends pas alors comment lui dire "arrête de boucler si cest #DEBUT ou si c'est #FIN ??
    ...
    et bien tu boucle tant que c'est différent de #DEBUT et différent de #FIN ...

    mais je ne suis pas sur que se soit cela dont tu ait besoin !! car si tu utilise cela ton traitement va être stoppé au premier #DEBUT trouvé..

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    683
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 683
    Points : 237
    Points
    237
    Par défaut
    Merci cela marche



    Vous êtes des champions !!!

  9. #9
    Membre éclairé
    Inscrit en
    Décembre 2007
    Messages
    512
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 512
    Points : 671
    Points
    671
    Par défaut Envoyé par tibofo
    Bonjour ,

    D'abord quand je lis un fichier texte, je le mets dans un table ( dimxx ()) en le lisant jusqu'au 'end of file'.
    Et puis seulement aprrès ,je fais le traitement sur la table,puis je réécris dans l'autre fichier texte, puisque je vois 'Print #2, LigneLue1'.

    En plus
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    While LigneLue1 <> "#DEBUT" OR LigneLue1 <> "#FIN"
                            Line Input #1, LigneLue1
     
                                If LigneLue1 <> "#DEBUT" Then
    ensuite deux fois
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    LigneLue1 <> "#DEBUT"
    Avec 'while et 'if ,c'est la même chose, ce n'est pas une erreur de code , mais pas très logique dans ta programmation.

    A+

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

Discussions similaires

  1. [AC-2007] Requête avec critère qui ne marche pas suivant la version de RunTime
    Par pio_killer dans le forum Runtime
    Réponses: 1
    Dernier message: 19/11/2011, 14h09
  2. [PHP 5.2] Formulaire avec UPLOAD qui ne marche pas
    Par ju0123456789 dans le forum Langage
    Réponses: 2
    Dernier message: 08/01/2010, 15h37
  3. Un code avec pointeurs qui ne marche pas
    Par yohannc dans le forum Débuter
    Réponses: 5
    Dernier message: 31/10/2008, 15h18
  4. [MySQL] condition avec requete qui ne marche pas ..sous ie
    Par esti89 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 13/06/2008, 09h53

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