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.NET Discussion :

Pourquoi mes mini boucles ne fonctionnent pas ? [Débutant]


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2005
    Messages : 608
    Par défaut Pourquoi mes mini boucles ne fonctionnent pas ?
    Bonjour,
    voila, je rencontre un souci dans le traitement d'une donnée, ceci dans une boucle pourtant simplissime :

    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
    ' la valeur affichee par QILEFT.Text est chargée via une feuille excel et pas de souci de ce coté
    'Dans mes declarations initiales
    Public ValQILEFT As Double
    Public ValQI As Double
    'pour l'oeil gauche
              If TextBoxosod.Text = "OS" Then
                    If valQILEFT <= -0.3 Then
                    ValQI = 1
                    End If
                    If valQILEFT > -0.3 Or valQILEFT < 0.3 Then
                    ValQI = 2
                    End If
                    If valQILEFT >= 0.3 Then
                    ValQI = 3
                    End If
     QI#Text = VALQI.ToString("0.00")
              End If
    Comme ceci, quelle que soit la valeur affichée par QILEFT ma valeur affichée par la textbox QI est toujours de 2.00

    si maintenant je teste comme cela :

    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
    'Dans mes declarations initiales
    Public ValQILEFT As Double
    Public ValQI As Double
    'pour l'oeil gauche
    If TextBoxosod.Text = "OS" Then
          If QILEFT.Text <= "-0.30" Then
          QI.Text = "1.00"
          End If
          If QILEFT.Text > "-0.30" Or QILEFT.Text < "0.30" Then
          QI.Text = "2.00"
          End If
          If QILEFT.Text >= "0.30" Then
          QI.Text = "3.00"
          End If
    End If
    j'ai les bonnes valeurs affichées pour les cas 2 et 3 mais pour le cas 1 (donc valeurs <= -0.3 du style -0.36), j'ai le 2 affiché au lieu du 1

    Que peut il se passer ?
    Merci bien

  2. #2
    Membre éclairé
    Homme Profil pro
    Responsable Maintenance
    Inscrit en
    Août 2012
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Responsable Maintenance

    Informations forums :
    Inscription : Août 2012
    Messages : 479
    Par défaut
    Remplace ton OR par AND

    -0.36 et aussi inférieur a 0.3 par définition du coup
    il exécute la première condition effectivement -0.36 et inférieur a -0.3
    donc il met a 1
    Mais dans la seconde condition il voit que -0.36 est inferieur à 0.3 et il repasse donc ta variable a 2
    Vu la vitesse tu ne vois pas le passage


    Ton second cas c'est que tu es compris entre -0.3 et 0.3 et pas Ou 0.3

  3. #3
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2008
    Messages : 42
    Par défaut
    Ca ne serait pas un problème dû au fait que tu compare des chaînes de caractères et non des nombres?

  4. #4
    Membre éclairé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2005
    Messages : 608
    Par défaut
    bonjour a vous 2
    c'est sur, je viens de voir mon erreur sur le OR mais même en corrigeant ca ne fonctionne pas
    J' ai effectivement un probleme dû au fait que je compare des chaînes de caractères et non des nombres, alors j'ai essayé ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    If TextBoxosod.Text = "OS" Then
                          Select Case VALQILEFT
                            Case Is <= -0.3
                                ValQI = 1
                            Case Is > 0.3
                                ValQI = 2
                            Case Else
                                ValQI = 3
                          End Select
                          QI.Text = ValQI.ToString("0.00")
    End If
    mais ca marche po non plus, j'ai 0.00 affiché dans mon textbox QI

  5. #5
    Membre éclairé
    Homme Profil pro
    Responsable Maintenance
    Inscrit en
    Août 2012
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Responsable Maintenance

    Informations forums :
    Inscription : Août 2012
    Messages : 479
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DIm VALQILEFT as double = convert.toDouble(TATEXTBOX.text)
    Ensuite fait les comparaison avec ta variable en double

  6. #6
    Membre éclairé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2005
    Messages : 608
    Par défaut
    Ah bah je ne comprends absolument rien a ce que tu me montres la, et pourtant cela fonctionne. Peux tu me dire ce que j'ai fait ????? je prefererais plutôt que de copier betement ta ligne

  7. #7
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2008
    Messages : 42
    Par défaut
    En fait tu type ta variable VALQILEFT en double (Type pouvant contenir des decimaux signé). Comme ca ta comparaison se fait bien sur une valeur et pas sur une chaîne de caractères.

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

Discussions similaires

  1. [MySQL] Boucle ne fonctionne pas pourquoi ?
    Par BXDSPORT dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 27/07/2011, 17h05
  2. Réponses: 4
    Dernier message: 08/07/2011, 15h08
  3. [Outils][Crystal Report] Pourquoi mes icones ne s'affichent pas ?
    Par tonynho dans le forum SAP Crystal Reports
    Réponses: 6
    Dernier message: 12/05/2006, 15h29
  4. [ADO.Net][OleDb] Pourquoi ma requête access ne fonctionne pas?
    Par Bapt.ice dans le forum Accès aux données
    Réponses: 6
    Dernier message: 05/05/2006, 17h19
  5. ma boucle ne fonctionne pas
    Par mélo6 dans le forum ASP
    Réponses: 2
    Dernier message: 17/06/2005, 11h53

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