spujol
Messages postés7Date d'inscriptionvendredi 7 novembre 2003StatutMembreDernière intervention 4 janvier 2010
-
10 mai 2005 à 14:49
spujol
Messages postés7Date d'inscriptionvendredi 7 novembre 2003StatutMembreDerniè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"
crenaud76
Messages postés4172Date d'inscriptionmercredi 30 juillet 2003StatutMembreDernière intervention 9 juin 200628 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
cs_dragon
Messages postés2336Date d'inscriptionsamedi 14 juillet 2001StatutMembreDernière intervention 5 mai 20096 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
-------------------------------------------------
spujol
Messages postés7Date d'inscriptionvendredi 7 novembre 2003StatutMembreDerniè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.