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 :

Tri par ordre croissant dans des TextBox


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2012
    Messages : 16
    Par défaut Tri par ordre croissant dans des TextBox
    Bonjour,
    Je crée un programme qui me permet de gérer plus facilement un jeu de rôle, et j'ai besoin de trier une liste par ordre croissant dans des TextBox, afin de savoir à qui est-ce le tour de jouer.
    Prenons pour exemple: {Nom1 ; Nom2 ; Nom3} pour les noms des personnages et {Int1 ; Int2 ; Int3} qui sont les résultats des calculs de différentes variables et qui sont respectivement reliées à Nom1, Nom2 et Nom3. Le joueur (Nomx) qui a l'initiative (Intx) la plus élevée commence, et par conséquent, les Noms des joueurs s'affichent dans trois TextBox, suivant l'ordre croissant de leur initiative.
    Par exemple, si Int2>Int1>Int3, dans les TextBox vont s'afficher dans l'ordre Nom2 puis Nom1 dans une autre et Nom3 dans la dernière.
    Tout va bien pour le calcul, mais je ne sais pas comment faire pour trier les initiatives par ordre croissant.
    Merci de m'aider

  2. #2
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Par défaut
    Bonjour,

    pourrait-on voir votre code afin de pouvoir mieux vous aider car comme c'est expliqué, c'est fort abstrait... Les joueurs et les initiatives sont-ils des tableaux? Des variables ?

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2012
    Messages : 16
    Par défaut
    tout de suite, sankass
    alors on considère {Nom1 ; Nom2 ; Nom3} des textbox avec le nom des personnages {Bon1 ; Bon2 ; Bon3} les bonus à l'initiative de ces personnages {Jet1 ; Jet2 ; Jet3} le résultat de leur jet de dé et {Int1 ; Int2 ; Int3} le résultat de l'addition du jet et du bonus. tout ceci sont des TextBox, et je cherche à classer Int1, Int2, et Int3 par ordre croissant, afin que leur nom s'affiche dans l'ordre dans {Ordr1 ; Ordr2 ; Ordr3} qui sont des TextBox, afin de savoir l'ordre des tours et je n'ai pas de code pour l'instant en dehors du calcul de Int1, Int2, et Int3
    Toutes les textboxes sont remplissables par l'utilisateur (donc variables) à l'exception du total (Int1, Int2 et Int3) et des cases d'initiative (Ordr1, Ordr2 et Ordr3)

  4. #4
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Par défaut
    Ils vous suffit donc de mettre toutes les valeurs dans une List(Of Integer) et de trier celui-ci par la méthode sort :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
            Dim liste As New List(Of Integer)
            liste.Add(5)
            liste.Add(1)
            liste.Add(20)
            liste.Sort()
            For Each elem In liste
                MessageBox.Show(elem)
            Next

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2012
    Messages : 16
    Par défaut
    Merci beaucoup pour cette aide, pour l'instant ça marche plutôt bien, mais j'ai une question à poser: Que signifie "elem"? car quand je glisse mon curseur dessus, l'on m'indique "Dim elem As Integer" est-il donc déclaré automatiquement?
    Si c'est le cas, y-a-t'il moyen de palier à cette déclaration automatique afin qu'il ne me montre pas d'élément si la case est vide? (car elle peut l'être)
    et pour le moment, mes données ne sont pas triées par ordre croissant, mais dans l'ordre par lequel elles sont codées. Comment faire?
    Merci

  6. #6
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Par défaut
    Oui il est de type Integer car la liste générique qu'il énumère est de type Integer : List(Of Integer).
    Si tu veux ne pas mettre d'élément pour le tri tu devrais ne pas les insérer, car ici il faut absolument une valeur dans la liste pour les insérer dans la liste.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
            Dim liste As New List(Of Integer)
            if isNumeric(TextBox1.Text) Then liste.Add(TextBox1.Text)
            if isNumeric(TextBox2.Text) Then liste.Add(TextBox2.Text)
            if isNumeric(TextBox3.Text) Then liste.Add(TextBox3.Text)
            liste.Sort()
            For Each elem In liste
                MessageBox.Show(elem)
            Next

  7. #7
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2012
    Messages : 16
    Par défaut
    d'accord, merci beaucoup problème résolu! merci pour votre aide!

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

Discussions similaires

  1. Tri par ordre croissant dans une listview
    Par megamario dans le forum VB.NET
    Réponses: 26
    Dernier message: 09/07/2010, 10h01
  2. Tri par ordre croissant dans variable tableau
    Par jojo86 dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 27/11/2009, 16h51
  3. Insertion dans un fichier trié par ordre croissant
    Par darkterreur dans le forum Langage
    Réponses: 14
    Dernier message: 20/09/2009, 19h39
  4. Tri par ordre croissant
    Par KinF dans le forum Algorithmes et structures de données
    Réponses: 18
    Dernier message: 13/12/2008, 20h19

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