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 :

Parcourir un listview pour verifier que les nombres générés au hasard sont différents


Sujet :

VB 6 et antérieur

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 22
    Points : 17
    Points
    17
    Par défaut Parcourir un listview pour verifier que les nombres générés au hasard sont différents
    Bonjour à tous.

    Voilà, mon problème est dans le titre : je désire parcourir tous les items de ma listview afin d'affecter des nombres aléatoires différents. j'ai du mal avec l'algo en fait.

    Voici mon code qui ne fonctionne pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    ' génération aléatoire des numéros d'anonymat
        For i = 1 To LV_Echantillons.ListItems.Count
            NumAleatoire = Int(Rnd * 100) + 1
            ' on vérifie que ce numéro n'a pas déja été affecté
            Do While NumAleatoire <> CInt(LV_Echantillons.ListItems.Item(i).ListSubItems.Item(2).Text)
                LV_Echantillons.ListItems.Item(i).ListSubItems.Item(2).Text = NumAleatoire
            Loop
        Next
    Meric d'avance pour votre aide !

  2. #2
    Membre confirmé Avatar de La Praline
    Inscrit en
    Mars 2007
    Messages
    592
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mars 2007
    Messages : 592
    Points : 568
    Points
    568
    Par défaut
    Bonjour,

    Un code qui ne marche pas...
    D'accord...

    mais à quel niveau ne marche-t-il pas ?
    Il te génère une erreur? Si oui à quelle ligne.
    Il ne se passe rien?
    Il ne se passe rien mais des doublons sont crées...
    etc...


    Merci d'avance

  3. #3
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 22
    Points : 17
    Points
    17
    Par défaut
    Oui en effet, j'ai omi de préciser le fait que les numéros s'affichent mais que des doublons sont créés.

    Donc dans ma list_view, des numeros sont identiques alors que je voudrais qu'ils soient tous différents.

    Merci d'avance ...

  4. #4
    Membre confirmé Avatar de La Praline
    Inscrit en
    Mars 2007
    Messages
    592
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mars 2007
    Messages : 592
    Points : 568
    Points
    568
    Par défaut
    Ne te suffirait-il pas de tester avant d'enregistrer(ou d'afficher) chaque numéro si il existe déjà.

    En gros, tu tire un nombre au hasard, avant de le mettre dans ta list, tu le compare à tous les autres chiffres déjà présent dans cette liste.
    => Si il est le seul, tu le garde.
    => Si il y en a un autre, tu le vire !

    Mon raisonnement te convient-il ??? (si il te convient, on va pouvoir développer par la suite )

    Cordialement

  5. #5
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 22
    Points : 17
    Points
    17
    Par défaut
    Oui je pense que cette logique algorithmique devait correspondre à mes besoins. Peux-tu développer please ??

  6. #6
    Membre éclairé
    Avatar de Theocourant
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    618
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 618
    Points : 739
    Points
    739
    Par défaut
    Citation Envoyé par method_man
    Bonjour à tous.

    Voilà, mon problème est dans le titre : je désire parcourir tous les items de ma listview afin d'affecter des nombres aléatoires différents. j'ai du mal avec l'algo en fait.

    Voici mon code qui ne fonctionne pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    ' génération aléatoire des numéros d'anonymat
        For i = 1 To LV_Echantillons.ListItems.Count
            NumAleatoire = Int(Rnd * 100) + 1
            ' on vérifie que ce numéro n'a pas déja été affecté
            Do While NumAleatoire <> CInt(LV_Echantillons.ListItems.Item(i).ListSubItems.Item(2).Text)
                LV_Echantillons.ListItems.Item(i).ListSubItems.Item(2).Text = NumAleatoire
            Loop
        Next
    Meric d'avance pour votre aide !
    Bonjour,

    Je ferais ceci :
    Code VB : 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
    20
    21
    ' génération aléatoire des numéros d'anonymat
        For i = 1 To LV_Echantillons.ListItems.Count
            NombreOk=False  'Variable de contrôle initialement fausse
            While Not NombreOk
                NumAleatoire = Int(Rnd * 100) + 1
                NombreOk=True  'Variable de contrôle nombre correct jusqu'à preuve du contraire
                'On parcours la liste pour contrôler sauf pour le 1er
                If i<>1 then
                    For j=1 To i-1
                    'on vérifie que ce numéro n'a pas déja été affecté
                        If NumAleatoire = CInt(LV_Echantillons.ListItems.Item(i).ListSubItems.Item(2).Text Then
                            'Si le nombre est présent alors on modifie la variable de contrôle et on sort de la boucle = pas la peine de continuer
                            NombreOk=False
                            Exit For
                        End If
                    Next j
                End If
            Wend
            'on affecte le nombre car non trouvé dans la liste
            LV_Echantillons.ListItems.Item(i).ListSubItems.Item(2).Text = NumAleatoire
        Next i

    Voilà

    +

    Théo

  7. #7
    Membre confirmé Avatar de La Praline
    Inscrit en
    Mars 2007
    Messages
    592
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mars 2007
    Messages : 592
    Points : 568
    Points
    568
    Par défaut
    J'aurais pas dis mieux

    Bon courage !

  8. #8
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 22
    Points : 17
    Points
    17
    Par défaut
    Merci pour ta réponse mais des doublons sont tout de même générés.
    Je vais continuer à chercher dans cette voie.

    Biensur toute contribution est la bienvenue

  9. #9
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 22
    Points : 17
    Points
    17
    Par défaut
    ca y est j'ai réussi, il y a avait juste une petite erreur dans ton code, il faut remplacer l'indice i par j dans la deuxieme boucle for.

    Merci à tous pour votre aide précieuse et a+++ !!

  10. #10
    Membre éclairé
    Avatar de Theocourant
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    618
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 618
    Points : 739
    Points
    739
    Par défaut
    Citation Envoyé par method_man
    ca y est j'ai réussi, il y a avait juste une petite erreur dans ton code, il faut remplacer l'indice i par j dans la deuxieme boucle for.

    Merci à tous pour votre aide précieuse et a+++ !!


    Désolé mais heureux que tu aies trouvé l'erreur.

    Théo

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

Discussions similaires

  1. Réponses: 12
    Dernier message: 16/01/2011, 15h36
  2. Réponses: 0
    Dernier message: 10/11/2010, 11h38
  3. Logiciel pour récupérer que les mails dans une page web
    Par mouss4rs dans le forum Autres Logiciels
    Réponses: 0
    Dernier message: 24/07/2010, 14h41
  4. Réponses: 14
    Dernier message: 11/01/2009, 17h27
  5. Réponses: 1
    Dernier message: 31/10/2008, 09h50

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