Comparer 2 fichiers texte

Résolu
cs_ludwig89
Messages postés
47
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
18 septembre 2009
- 15 sept. 2004 à 09:11
econs
Messages postés
4030
Date d'inscription
mardi 13 mai 2003
Statut
Modérateur
Dernière intervention
23 décembre 2008
- 15 sept. 2004 à 13:32
bonjour

en vb6

je voudrai comparer toutes les lignes de 2 fichiers texte sauf la premiere de chaque fichier

si les lignes sont identique effacer le fichier texte 2

comment faire????

merci

5 réponses

econs
Messages postés
4030
Date d'inscription
mardi 13 mai 2003
Statut
Modérateur
Dernière intervention
23 décembre 2008
23
15 sept. 2004 à 09:30

Dim numFile1 As Long
Dim numFile2 As Long
Dim difference_detected As Boolean
Dim s1 As String
Dim s2 As String

difference_detected = False
numFile1 = FreeFile
Open "C:\mon_premier_fichier_texte.txt" For Input As #numFile1
Line Input #numFile1, s1 ' Skip de la première ligne
numFile2 = FreeFile
Open "C:\mon_second_fichier_texte.txt" For Input As #numFile2
Line Input #numFile2, s2 ' Skip de la seconde ligne

While (Not (EOF(numFile1)) And (Not EOF(numFile2))) And difference_detected = False
Line Input #numFile1, s1
Line Input #numFile2, s2
If Trim(s1) <> Trim(s2) Then
difference_detected = True
End If
Wend

' Verifie que les deux fichiers avaient la même taille
If Not (EOF(numFile1) And EOF(numFile2)) Then
' L'un des deux fichiers n'est pas complètement lu
difference_detected = True
End If
Close #numFile2
Close #numFile1

If difference_detected Then
Kill "C:\mon_second_fichier_texte.txt"
End If


Manu
3
Fulgy
Messages postés
85
Date d'inscription
mercredi 21 juillet 2004
Statut
Membre
Dernière intervention
5 octobre 2004

15 sept. 2004 à 09:29
Lut.
Tu peux utiliser le modèle fso, en te servant de la méthode ReadLine sur tes deux fichiers, tu l'utilises une première fois sans faire de traitement pour sauter la première ligne, ensuite tant que tu trouve des lignes identiques tu continus de lire les fichiers, sinon tu supprime ton fichier 2.
A+
0
econs
Messages postés
4030
Date d'inscription
mardi 13 mai 2003
Statut
Modérateur
Dernière intervention
23 décembre 2008
23
15 sept. 2004 à 09:32
Une erreur dans le commentaire .. rien de grave, mais c'est mieux de corriger pour la compréhension :)


Dim numFile1 As Long
Dim numFile2 As Long
Dim difference_detected As Boolean
Dim s1 As String
Dim s2 As String

difference_detected = False
numFile1 = FreeFile
Open "C:\mon_premier_fichier_texte.txt" For Input As #numFile1
Line Input #numFile1, s1 ' Skip de la première ligne
numFile2 = FreeFile
Open "C:\mon_second_fichier_texte.txt" For Input As #numFile2

<s>Line Input #numFile2, s2 ' Skip de la seconde ligne</s>
Line Input #numFile2, s2 ' Skip de la première ligne

[...]

Manu
0
cs_rene38
Messages postés
1858
Date d'inscription
samedi 29 juin 2002
Statut
Membre
Dernière intervention
17 octobre 2013
11
15 sept. 2004 à 10:20
Bonjour
ludwig89 a écrit :
"si les lignes sont identique effacer le fichier texte 2"

il faut donc remplacer la ligne :

If difference_detected Then
   Kill "C:\mon_second_fichier_texte.txt"
End If


par

If Not difference_detected Then
   Kill "C:\mon_second_fichier_texte.txt"
End If
0

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

Posez votre question
econs
Messages postés
4030
Date d'inscription
mardi 13 mai 2003
Statut
Modérateur
Dernière intervention
23 décembre 2008
23
15 sept. 2004 à 13:32
Ah oui .. tiens .... :)
Bien vu !

Manu
0