Comparaison de 2 fichiers TXT

spujol Messages postés 7 Date d'inscription vendredi 7 novembre 2003 Statut Membre Dernière intervention 4 janvier 2010 - 10 mai 2005 à 14:49
spujol Messages postés 7 Date d'inscription vendredi 7 novembre 2003 Statut Membre Dernière intervention 4 janvier 2010 - 12 mai 2005 à 10:57
Bonjour,

Je voulais savoir si une personne pouvait m'aider.
J'ai deux fichiers txt (1.txt & 2.txt), et je voudrais les comparer avec les diff inscris dans un autre fichier (diff.txt) ou bien les num des lignes qui sont différents.

Merci pour votre aide.

J'ai dejà un morceau de code ci dessous qui me donne dans une dialogBox si les fichiers sont identique ou non, je ne sais pas ou rajouter un morceau de code qui m'écrivent le num de la ligne qui est différent.

' Fonction pour la comparaison
Private Sub Compare()



Dim Fichier1 As String
Dim Fichier2 As String
Dim lFile1 As Long
Dim lFile2 As Long
Dim Temp1 As String
Dim Temp2 As String


' Les fichiers à comparé
Fichier1 = Text1.Text
Fichier2 = Text2.Text


' Demande un numéro de fichier
lFile1 = FreeFile
Open Fichier1 For Binary Access Read As #lFile1


' Demande un numéro de fichier
lFile2 = FreeFile
Open Fichier2 For Binary Access Read As #lFile2



' Commence la boucle
Do
Temp1 = String$(1, " ")
Temp2 = String$(1, " ")

Get #lFile1, , Temp1
Get #lFile2, , Temp2


' Compare le deuxième buffer au premier buffer
If Temp2 <> Temp1 Then


' Le deuxième buffer est différent du premier
MsgBox "Le deuxième fichier est différent du premier fichier !", vbOKOnly, "Résultat"



' Ferme les fichiers
Close #lFile1
Close #lFile2
Exit Sub


End If


' Boucle tant qu'on est pas rendu à la fin d'un des fichiers
Loop Until (EOF(lFile1) Or EOF(lFile2))


' Ferme les fichiers
Close #lFile1
Close #lFile2


' Si on c'est rendu jusqu'ici c'est que les 2 fichiers sont identique
' Un message pour informé l'utilisateur
MsgBox "Les 2 fichiers sont identique !!!", vbOKOnly, "Résultat"


End Sub

5 réponses

Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
10 mai 2005 à 15:05
sous DOS:

FC/a fichier1 fichier2 > differences

ou /b pour du binaire.

Daniel
0
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
10 mai 2005 à 15:23
En VB6 :
dim B1 as string, B2 as string,T1() as string, T2() as string, i as long, MinNbLigne As Long
Open "1.txt" for input as #1
Open "2.txt" for input as #2
Open "diff.txt" for output as #3
B1 = input(lof(1), #1)
B2 = input(lof(2), #2)
Close #1
Close #2
If B1 <> B2 Then
T1 = Split(B1, vbCRLF)
T2 = split(B2, vbCRLF)
MinNbLigne = UBound(T1)
Select Case MinNbLigne
Case Is > UBound(T2) Then
MinNbLigne = UBound(T2)
Print #3, "2.Txt contient moins de ligne que 1.Txt"
Case Is < UBound(T2) Then
Print #3, "1.Txt contient moins de ligne que 2.Txt"
Case Else
Print #3, "1.Txt contient autant de ligne que 2.Txt"
End Select
For i = 0 to MinNbLigne
If T1(i)<>T2(i) then Print #3, "Lignes N°" & CStr(i) & "différentes"
Next
End If
Close #3

Est-ce que cela te convient ?

Christophe R
0
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
10 mai 2005 à 20:31
si tu veux en faire un complet il te faut 6 fichiers en mémoire. 2 qui sont les originaux, 2 autres que tu modifies pour finir avec 2 fichiers identiques après le traitement et 2 dernier qui prend les modif en notes pour te faire un rapport.

tu commences par trouver les lignes en plus de chaque coté, puis les ligne en moins et le plus compliquer les lignes complètement changer. Si tu veux être précis, au lieu de compté en ligne, tu peux compté en caractères. sauf qu'il faudra que tu soit capapble de détecter quand un série est assez sembleble pour être la même des 2 côté

bonjour comment ça va
bonjour ment comment ça va

visuellement on voit tout de suite que c'est "ment" qui a été ajouter, mais en code, il va plutot détecter "com" a été enlever et "comment" a été ajouté

-------------------------------------------------
Dragon alias aussi Waxime mais bon, pas le gout de refaire un nouveau profil lol
-------------------------------------------------
0
spujol Messages postés 7 Date d'inscription vendredi 7 novembre 2003 Statut Membre Dernière intervention 4 janvier 2010
11 mai 2005 à 18:33
Merci de vos réponses, je vais dépouiller tout ceci et essayer des ce soir pour comment intégréer ceci dans mon code.

Si j'ai d'autre problème concernat ce sujet, je reviendrais vers vous.

Merci encore.
0

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

Posez votre question
spujol Messages postés 7 Date d'inscription vendredi 7 novembre 2003 Statut Membre Dernière intervention 4 janvier 2010
12 mai 2005 à 10:57
Je reviens vers vous pour vous dire merci.
J'ai utilisé la méthode de Christophe, j'ai un peu modifié le code pour qu'il s'intégre à mon projet, merci encore.

Pour la méthode du DOS, j'ai essayé, mais je ne sais pas comment lancer du DOS avec le VB, Daniel si tu as le truc pour le faire, je serais prenneur.

J'ai rajouter une chose, je suis tombé sur un cas ou mes deux fichiers avaient le même nombre de ligne, mais un mot avait changé. Après toutes les modif réalisées, je suis arrivé sur ce résultat.

Lignes N°18 différentes
SPCP_874.dll1
SPCP_874.dll

Merci et @ bientôt
0
Rejoignez-nous