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 :

probléme de condition


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2007
    Messages : 758
    Par défaut probléme de condition
    Bonjour j'ai un petit soucis au quel je ne trouve pas de solution.

    voila dans une fenêtre j'ai ma "textbox1" qui reçoit des données venant du port série, dans ma "textbox11" j'extraie à un endroit précis un numéro :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
            Dim num_ancien_inter As String = Mid(TextBox1.Text, 11, 11) 'numéro d'op extrait
    Et je souhait que si ce numéro est différent du précédent numéro reçu alors je déclenche une action sinon si il est identique je déclenche une autre action,
    pour ce faire j'ai procédé de cette façon mais ca ne fonctionne pas ! (c'est toujours l'action du numéro différent qui ressort)

    voila le code au chargement de ma page qui met label36.text à 0 :
    voila le code dans "TextBox1_TextChanged" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    If num_ancien_inter <> Label36.Text Then Label34.Text = Nothing 
    Label36.Text = Label22.Text 'je met le numéro extrait de mes données reçu dans mon label36.text
    Label34.text = "impression d'un nouveau numéro"
    ElseIf num_ancien_inter Like Label36.Text Then
                Label34.Text = "impression d'un meme numéro"
            End If
    Pour info label22.text extrait le numéro des données de ma textbox1 à l'aide d'un timer qui se rafraichit toutes les secondes afin d'extraire le numéro dans un tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Try
                Dim Tab(15) As String
                Tab = Me.TextBox1.Text.Split(New Char() {" "c})
                Label22.Text = Tab(3)
    Auriez vous une idée ?

  2. #2
    Membre Expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 793
    Par défaut
    Si tu remet la valeur à 0 forcément tu auras une valeur différente ...
    Met un point d'arrêt ici et regarde quelles sont tes valeurs.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If num_ancien_inter <> Label36.Text Then

  3. #3
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 198
    Par défaut
    pour info, quand on veut faire les choses bien, on donne des noms explicites aux controles, pas label36 et autres

    et quand on a beaucoup de controles, on essaye de ne pas les poser pas à la main un par un
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  4. #4
    Membre Expert Avatar de hunteshiva
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Février 2010
    Messages
    1 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2010
    Messages : 1 069
    Par défaut
    Je suis entièrement d'accord avec Pol63

    Je ne comprend pas ce que représente ton "num_ancien_inter"
    Quand tu reçoit une nouvelle valeur, tu la met dans une variable qui dit que c'est un ancien numéro... (nouveau <> ancien)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim num_ancien_inter As String = Mid(TextBox1.Text, 11, 11) 'numéro d'op extrait
    deuxième point, tu viens toujours comparer ta variable "num_ancien_inter" avec ton label36
    Mais je ne vois pas ou tu remplis le label36
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If num_ancien_inter <> Label36.Text Then

    -------------------------------------------------------------------------------------------------------------------------
    Idée pour rendre plus propre tes éléments

    TextBox1 -> txtNom
    Label1 -> lblNom
    ListBox -> lstNom
    Form1 -> frmNom
    Module1 -> mdlNom
    etc.

  5. #5
    Membre Expert Avatar de hunteshiva
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Février 2010
    Messages
    1 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2010
    Messages : 1 069
    Par défaut
    Non tu perd ta valeur... d’où ma remarque
    Citation Envoyé par hunteshiva Voir le message
    Je ne comprend pas ce que représente ton "num_ancien_inter"
    Quand tu reçoit une nouvelle valeur, tu la met dans une variable qui dit que c'est un ancien numéro... (nouveau <> ancien)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim num_ancien_inter As String = Mid(TextBox1.Text, 11, 11) 'numéro d'op extrait

    Je pense que tu devrais poser ton problème sur papiers,
    le faire tourner à la main et après tu code

  6. #6
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2007
    Messages : 758
    Par défaut
    oui en fait num_ancien_inter est le numéro que je récupère dans ma textbox.

    mon probléme mis à plat est le suivant :
    j'ai une textbox dans laquelle je reçois par un port série des données qui comporte un numéro de série, si ce numéro de série est différent du précédent recu je déclenche une action et si il est identique je déclenche une autre action !

  7. #7
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2007
    Messages : 758
    Par défaut
    J'ai mis la valeur de label36.text à 0 au démarrage de l'application juste afin de pouvoir toujours lancer la première condition car la numéro est toujours différent de 0

    j'ai mis le point d'arrêt et voila ce que j'obtiens :
    pour le premier lancement de l'application "num_ancien_inter" récupère bien la valeur de ma textbox = "143289054"

    et Label36.Text est bien egal à 0 donc la premiére condition s'effectue,

    mais quand je recoi après le même numéro dans ma textbox voila ce que j'ai pour :
    num_ancien_inter = ""
    Label36.Text = "143289054"

    ensuite je re-clique sur lecture et là inversement
    num_ancien_inter = "143289054"
    Label36.Text = ""

    donc il rentre à nouveau dans la condition ou les numéro sont différent comment cela ce fait il ?
    j'essaye de trouvé sinon à la place un système ou je pourrai stocker le numéro précédent dans un Tab(2) et le numéro actuel pour les comparer, mais comment faire ?

  8. #8
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2007
    Messages : 758
    Par défaut
    mon label36.text prend la valeur du label22.text ce label22.text est dans un timer qui se rafraichis tous les secondes et qui extrait les valeurs qui son séparé d'un espace dans ma textbox :
    voici le code:
    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
     
    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    Try
                Dim Tab(15) As String
                Tab = Me.TextBox1.Text.Split(New Char() {" "c})
                Label22.Text = Tab(3) 'num_inter 'affiche le numéro d'inter
                Label32.Text = Tab(7) 'num_renfort 'affiche le numéro d'inter
                Label23.Text = Tab(9) 'num_date 'affiche le numéro d'inter
                Label24.Text = Tab(11) 'ici je recupe l'heure
            Catch ex As Exception
                Label22.Text = Nothing
                Label32.Text = Nothing
                Label23.Text = Nothing
                Label24.Text = Nothing
            End Try
        End Sub

  9. #9
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2007
    Messages : 758
    Par défaut
    ou bien existe il un moyen de stocker la valeur précédente reçu de ma textbox ?
    comme ca je pourrai la comparer à celle que je recoi à l'instant t (ca je sais faire) ?

  10. #10
    Membre Expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 793
    Par défaut
    Ba suffit de la garder en tag ou dans une variable ...

  11. #11
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2007
    Messages : 758
    Par défaut
    Oui mais si je fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
    Dim num_ancien_inter As String = Mid(TextBox1.Text, 11, 11) 'numéro d'op extrait
    End sub
    je ne récupère que la variable a l'instant T et je n'ai plus l'ancienne ?

Discussions similaires

  1. [débutant] problème de condition dans une requete
    Par banker dans le forum Access
    Réponses: 5
    Dernier message: 22/03/2006, 13h52
  2. Réponses: 7
    Dernier message: 27/02/2006, 18h04
  3. [Debutant]Problème de condition
    Par ghan77 dans le forum Langage
    Réponses: 9
    Dernier message: 13/12/2005, 15h20
  4. Problème de condition, je flanche..
    Par KibitO dans le forum Langage
    Réponses: 13
    Dernier message: 11/11/2005, 12h57
  5. Réponses: 6
    Dernier message: 17/08/2005, 12h38

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