Comparaison d'une listbox a une autre.

rsx602 Messages postés 140 Date d'inscription jeudi 24 août 2006 Statut Membre Dernière intervention 28 août 2014 - 13 nov. 2011 à 21:58
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 - 16 nov. 2011 à 21:31
Bonjours , je suis sur un project et voila que je suis pris sur un probleme dont je narrive pas a résoudre. Laissez moi vous expliquez ce que j'aimerais trouvez :)

Sur FormLoad de mon programme , il ouvre un fichier text et le met dans la listbox3. Dans le fichier text il y a , metons sa un peut simple , Premiere ligne : 1 , Deuxieme ligne : 2 , troisieme ligne : 3

Dans mon listbox2 il y a , exemple , Premiere ligne : 1 , Deuxieme ligne : 2 , troisieme ligne : 3 et quatrieme ligne : 4.

Je cherche une fonction qui compare la premiere ligne du listbox2 au listbox3 (au complet pas juste la premiere ligne). Si la premiere ligne du listbox2 est dans la listbox3 alors on supprime la premiere ligne du listbox2 (listbox2.items.removeat(0)) Autrement si la premiere ligne (dison qu'on est rendu a "4") n'est pas dans le listbox3 alors on l'ajoute!

J'espere que je suis claire

(PS : je m'excuse pour ceux qui son mordu de francais.. c'est plein de faute je le sais )

29 réponses

cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
16 nov. 2011 à 09:29
Salut
Ok car moi quand j'ai essailer la fonction , Meme si la listbox2 avais le meme contenue que la 3 il l'ajoutais pareil a la 1!


chez moi j'ai testé et ça marche

comment sais tu que c'est le meme contenu
sers toi du debugger
mets un break point à la ligne
If Not ListBox3.Items.Contains(item

lance le prog et après step by step F8
verifie le contenu de item et de listbox3.items
0
rsx602 Messages postés 140 Date d'inscription jeudi 24 août 2006 Statut Membre Dernière intervention 28 août 2014
16 nov. 2011 à 09:57
j'ai essailer le debug et puis voici les résultat :

Premier debug :

ListBox3 {SelectedItem ""}

item = "7182DCF14BA4C32907C896E99B04DB1F" {String}

Deuxieme debug :

ListBox3 {SelectedItem ""}

item = "922091266A47F498F188500EA7942F64" {String}

Troisieme :

ListBox3 {SelectedItem ""}

item = "5D5C5CC229649AC42338928B47172FFE" {String}
0
rsx602 Messages postés 140 Date d'inscription jeudi 24 août 2006 Statut Membre Dernière intervention 28 août 2014
16 nov. 2011 à 09:59
Jai revérifier et je crois qu'il prend toujours la premiere ligne du listbox3 et ne regarde pas avec les autres. C'est donc pourquoi la premiere ligne ne se retrouve pas dans la listbox1 mais que le reste oui!
0
rsx602 Messages postés 140 Date d'inscription jeudi 24 août 2006 Statut Membre Dernière intervention 28 août 2014
16 nov. 2011 à 10:00
Premier debug :

Listbox 3 AccessibilityObject {ControlAccessibleObject: Owner = System.Windows.Forms.ListBox, Items.Count: 55, Items[0]: 7182DCF14BA4C32907C896E99B04DB1F}

item = "7182DCF14BA4C32907C896E99B04DB1F" {String}

Donc ici sa concorde alors il l'ajoute pas

Deuxieme Debug :

Listbox 3 AccessibilityObject {ControlAccessibleObject: Owner = System.Windows.Forms.ListBox, Items.Count: 55, Items[0]: 7182DCF14BA4C32907C896E99B04DB1F}

item item "6BCDBC10F50A6EBB5D83399327F3FE39" {String}

ainsi de suite
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
16 nov. 2011 à 12:09
Listbox 3 = AccessibilityObject = {ControlAccessibleObject: Owner = System.Windows.Forms.ListBox, Items.Count: 55, Items[0]: 7182DCF14BA4C32907C896E99B04DB1F}

item item "6BCDBC10F50A6EBB5D83399327F3FE39" {String}

ici tu dois changer dans le watch
au lieu Items[0] Items[1]
tu verifies le deuxième element
ainsi à chaque iteration change l'index
0
rsx602 Messages postés 140 Date d'inscription jeudi 24 août 2006 Statut Membre Dernière intervention 28 août 2014
16 nov. 2011 à 18:07
Mais il arrive quoi si exemple j'ai

Listbox2 = 1 , 2 , 3 , 4

Listbot3 = 2 , 3 , 1

Il faut que chaque ligne du listbox2 sois vérifier avec chaque ligne du listbox3. C'est bien sa qui est suposé arrivé?
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
16 nov. 2011 à 19:43
Salut
possible qu'il y a une incompréhension entre nous
la sub compare
verifie si chaque element de listbox2
For Each item In ListBox2.Items

n'est pas dans le contenu de listbox3
s'il n'est pas dans le contenu de listbox3
alors ajoute le item (the item to be checked from listbox2) à listbox1
If Not ListBox3.Items.Contains(item) Then
   ListBox1.Items.Add(item)
End If


selon ton ex
dans lisbox1 je dois avoir 4
0
rsx602 Messages postés 140 Date d'inscription jeudi 24 août 2006 Statut Membre Dernière intervention 28 août 2014
16 nov. 2011 à 19:55
Mais je comprend alors pas pourquoi si on regarde la derniere capture décran plus haut on retrouve tout les meme ligne , regardé la ligne 1 du listbox1 , la ligne 2 du listbox 2 aini que la ligne 2 du listbox 3.. il sont tous pareil c'est pour sa que je me demande pourquoi il se retrouve dans la listbox1 .. Car l'item du listbox2 étai deja présente dans la 3 =\ , j'ai esailer de metre , manuellement , dans la listbox2 1 , 2 , 3 , 4 et Listbox3 1 , 2 , 3 ... quand je fait comme sa sa marche A1 mais sinon quand je veut vérifier les md5 on dirais que la vérification ne fonctionne pas comme il faut =\
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
16 nov. 2011 à 21:31
Je ne sais pas quoi te dire
pour etre sur que tu verifies bien les md5
avec le debugger
mets un point d'arret
 For Each item In ListBox2.Items

lance le prog
dans la fenetre du watch
ajoute item
ListBox3.Items(0)
F8 compare
attention à la prochaine iteration
avant que
If Not ListBox3.Items.Contains(item)
soit excuté
dans le watch change ListBox3.Items(1)
verifie bien avec le watch que tu compares
les bon élements à chaque itération
0
Rejoignez-nous