Comparer le contenu de 2 fichiers

cs_BUCK Messages postés 4 Date d'inscription dimanche 22 septembre 2002 Statut Membre Dernière intervention 15 février 2009 - 8 mars 2005 à 00:13
cs_BUCK Messages postés 4 Date d'inscription dimanche 22 septembre 2002 Statut Membre Dernière intervention 15 février 2009 - 8 mars 2005 à 10:33
Bonsoir,
Je sèche totalement, étant novice en VB
j'ai 2 fichiers textes qui n'ont pas le même nombre de lignes.
un global et l'autre erreur
je souhaiterai supprimer les lignes erreur du global en créant un 3eme fichier
j'ai fait un bout de code mais pas très performant car je ferme le fichier a chaque boucle.
je pense qu'il ya moyen de faire beaucoup mieux

Private Sub Command1_Click()
Path = "c:\users"
fichieradr = "adrmail.txt"
fichiererr = "errmail.txt"
fichierfinal = "adrmai1.txt"
fichadr = Path & fichieradr
ficherr = Path & fichiererr
fichfinal = Path & fichierfinal
Top = 0
Open fichadr For Input As #1
Open ficherr For Input As #2
Open fichfinal For Output As #3
Do While Not EOF(1)
Line Input #1, adresses
Do While Not EOF(2)
Top = 0
Line Input #2, erreur
If erreur = adresses Then
Top = 1
Exit Do
End If
Loop
If Top = 0 Then
Print #3, adresses
End If
Close #2
Open ficherr For Input As #2
Loop
Close #1
Close #2
Close #3
End Sub

Merci par avance et continuez vos réponses nous sont très utiles
BUCK60

3 réponses

cqui789 Messages postés 261 Date d'inscription jeudi 13 janvier 2005 Statut Membre Dernière intervention 18 mai 2009 3
8 mars 2005 à 00:44
isi les 2 fichiers sont toutjours classes dans le meme ordre, tu pourrait effectivement faire mieux.



si tes fichier ne sont pas dans le meme ordre, la seule amelioration
que je vois serait d'enregistrer le plus petit fichier dans un tableau
avant la boucle principale.
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
8 mars 2005 à 09:24
Bonjour,
comme dit cqi789, si toutes les lignes
de erreur sont dans le gobal et dans le
même ordre...

Dim luerr As String, lubon As String
Do While Not EOF(2)
Line Input #2, luerr
Do While Not EOF(1)
Line Input #1, lubon
If lubon = luerr Then Exit Do
Print #3, lubon
Wend
Wend
Close #1, #2, #3

pas testé, ça ne doit pas être loin.
Cordialement. Bul. ~Site~~[mailto:marcelBultez@tiscali.fr Mail]~
0
cs_BUCK Messages postés 4 Date d'inscription dimanche 22 septembre 2002 Statut Membre Dernière intervention 15 février 2009
8 mars 2005 à 10:33
Tout d'abord pour vos reponses
les fichiers ne sont pas classés dans le même ordre.
je veux justement épurer fichadr des lignes contenu dans ficherr.
pour info dans fichadr il y a 5400 lignes et ficherr 1400.
il est vrai que le meilleur moyen est de mettre le contenu d'un des deux dans un tableau.
Et c'est la que je sollicite votre aide car mes essais ne sont pas concluant.
cordialement

BUCK60
0
Rejoignez-nous