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 :

Juste une histoire de comparaisons [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 Juste une histoire de comparaisons
    Bonjour,
    Je dois comparer 3 valeurs affichées dans 3 textbox différentes et tout simplement afficher la valeur de la plus petite d'entre elles dans un nouveau textbox.
    Je m'embrouille avec les opérateurs et je voulais savoir si il n'y avait pas quelque chose de plus simple que de comparer ligne par ligne les 3 valeurs.

    Ex : j'ai "2" affiché dans textboxA
    "4" affiché dans textboxB
    "6" affiché dans textboxC
    Ma textboxD affichera dans ce cas "2"

    Merci beaucoup

  2. #2
    Membre Expert Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Par défaut
    Si tu utilises le framework 3.5 ou + :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
          Dim ListeValeur As List(Of Integer) = New List(Of Integer) From {Integer.Parse(TextBox1.Text), Integer.Parse(TextBox2.Text), Integer.Parse(TextBox3.Text)}
     
           ' MsgBox(ListeValeur.Max())
             MsgBox(ListeValeur.Min())


    Enumerable.Max<TSource>

    EDIT: Oups, tu voulais le minimum !

    Enumerable.Min, méthode

  3. #3
    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 merci mais il veut pas le "min"

    Erreur 1 'Min' n'est pas un membre de 'System.Collections.Generic.List(Of Integer)'.
    j'utilise bien le framework 3.5 pourtant

  4. #4
    Membre Expert Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Par défaut
    J'ai downgradé en 3.5 et retesté, et ça marche chez moi ...

    Tu as eu cette erreur avec les 2 lignes de code que j'ai proposé ou en l'adaptant au tien ? Si c'est le tien, peut-on voit le code ?

  5. #5
    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
    ben mon code ne change pas du tien hormis le nom des textbox en fait. J'ai mis tout ca dans une simple sub compare(). Ca donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub compare()
            Dim ListeValeur As List(Of Integer) = New List(Of Integer) From {Integer.Parse(SPIMAGE2P.Text), Integer.Parse(P_SPIMAGE2.Text), Integer.Parse(P2_SPIMAGE2.Text)}
           MsgBox(ListeValeur.Min())
        End Sub
    Apres je veux juste afficher le plus petit des 3 dans une textbox appelée result. Par contre, si l'une des valeurs est = 0, elle ne sera pas prise en compte dans la comparaison.

  6. #6
    Membre Expert Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Par défaut
    Le 0 ne sera pas pris en compte, mais tu en auras l'utilité par la suite ?

    Tu peux le retirer de la liste le temps de calculer min.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
            Dim ListeValeur As System.Collections.Generic.List(Of Integer) = New System.Collections.Generic.List(Of Integer) From {Integer.Parse(TextBox1.Text), Integer.Parse(TextBox2.Text), Integer.Parse(TextBox3.Text)}
            Dim mini As Integer
     
            If ListeValeur.Contains(0) Then
                ListeValeur.Remove(0)
                mini = ListeValeur.Min
                ListeValeur.Add(0)
            Else
                mini = ListeValeur.Min
            End If
     
            MsgBox(mini)
    Ou sinon si tu n'as pas l'utilité du zero tu peux ne pas le rentrer dans la liste si l'une des textboxs est remplie avec.

    Mais ça ne résout pas ton problème de 'Min n'est pas un membre de 'System.Collections.Generic.List(Of Integer)'.


    EDIT: Tu peux essayer cette syntaxe en faisant un import de System.linq.Enumerable :
    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
    Imports System.Linq.Enumerable
     
     
    Public Class Form1
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Dim ListeValeur As System.Collections.Generic.List(Of Integer) = New System.Collections.Generic.List(Of Integer) From {Integer.Parse(TextBox1.Text), Integer.Parse(TextBox2.Text), Integer.Parse(TextBox3.Text)}
            Dim mini As Integer
     
     
            If ListeValeur.Contains(0) Then
                ListeValeur.Remove(0)
                mini = Min(ListeValeur)
                ListeValeur.Add(0)
            Else
                mini = Min(ListeValeur)
            End If
     
            MsgBox(mini)
        End Sub

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

Discussions similaires

  1. Une histoire de compte à rebours (avec formulaire)
    Par Olivier14 dans le forum Général JavaScript
    Réponses: 18
    Dernier message: 04/03/2009, 13h43
  2. Ouvrir juste une rubrique
    Par jenny50 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 06/03/2006, 13h31
  3. Appeler juste une fonction sans include
    Par laurent_ifips dans le forum Langage
    Réponses: 5
    Dernier message: 22/11/2005, 23h08
  4. Une histoire de lien...
    Par sloshy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 25/08/2005, 23h13
  5. [JAR][debutant] encore une histoire de classpath
    Par blaz dans le forum Général Java
    Réponses: 6
    Dernier message: 27/07/2005, 12h28

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