Comparaison de deux textbox

Résolu
roller0022 Messages postés 8 Date d'inscription lundi 23 juin 2003 Statut Membre Dernière intervention 9 avril 2006 - 8 avril 2006 à 09:06
roller0022 Messages postés 8 Date d'inscription lundi 23 juin 2003 Statut Membre Dernière intervention 9 avril 2006 - 9 avril 2006 à 10:56
Bonjour, ça y est, je suis dans la panade où je ne comprends pas.
J'ai 3 textbox, Dans Text1 : Il y a les chiffres 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 et dans text2: Il y a 5, 6, 7
Dans le text3: il y a la comparaison des deux textbox sous forme, met tous les chiffres de text1 qui ne sont pas dans text2 vers Text3
Pour cette exemple dans text3, Il y a 1, 2, 3, 4, 8, 9, 10.
Mon bout de programme fonctionne mais si Je rajoute le chiffre 1 est présent dans la Text1, le resultat de text3 est l'ensemble de text1 et c'est là le problème, je vous mets mon bout de code qui me chagrine un peu :
Private Sub Form_Load()
Text1 = ""
Text2 = ""
Text3 = ""
'___________________________________
'Ouvre le Fichier 1.txt et l'envoie sur textBox1
Path = "C:\1\3.txt"
Open Path For Input As #1
Text1.Text = Input(LOF(1), 1)
Close #1
'___________________________________
'Ouvre le Fichier 2.txt et l'envoie sur textBox2
Path = "C:\1\4.txt"
Open Path For Input As #1
Text2.Text = Input(LOF(1), 1)
Close #1
'Compte le nombre d'enregistrement de text1 et l'envoi de Text4
Text4 = UBound(Split(Text1, vbCrLf))
'Compte le nombre d'enregistrement de text2 et l'envoi dans Text5
Text5 = UBound(Split(Text2, vbCrLf))

'Comparaison, Envoi tous les enregistrement de text1
' qui ne sont pas dans text2 vers Text3
Text3.Text = Replace(Text1.Text, Text2.Text, "")

'Compte le nombre d'enregistrement de text3 et l'envoi dans Text5
Text6 = UBound(Split(Text3, vbCrLf))

End Sub

Si vous pourriez m'éclairer, ou peux être dois je faire une comparaison en boucle mais je ne suis pas trop caler.
Merci de votre aide.
Jean Paul

2 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
8 avril 2006 à 16:19
Salut
- Le nombre d'éléments dans un tableau (généré par Split) est égal à UBound + 1 car les tableaux commencent à l'index 0
- Si tu utilises Replace, ça fonctionnera à condition que la chaine contenue dans Text2 soit entièrement dans Text1
Par exemple, il cela fonctionnera avec 2,3,4 mais plus avec 2,3,6 car cette chaine "2,3,6" n'éxiste pas dans Text1
Il faut donc isoler chaque élément de chaque liste (avec Split) et les comparer un à un avec une boucle (For-Next)
Regarde l'aide de ces deux fonctions et imagine le reste.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Champion du monde de boule de cristal - 2005
Le savoir est la seule matière qui s'accro
3
roller0022 Messages postés 8 Date d'inscription lundi 23 juin 2003 Statut Membre Dernière intervention 9 avril 2006
9 avril 2006 à 10:56
Merci jack pourt ta réponse.
Oui tout à fait, j'ai compris mon erreur.
Je vais creer cela sous forme de listbox et creer une boucle for avec listcount.
La bonne fin de week end à toi et au groupe.
Cordialement
Jean Paul
0
Rejoignez-nous