Comparer 2 fichiers

5/5 (4 avis)

Snippet vu 7 578 fois - Téléchargée 58 fois

Contenu du snippet

Cette routine permet de comparer deux fichiers pour savoir si il contiennent exactement la meme chose.

Ti£oi$

Source / Exemple :


Function CompareFiles(ByVal file1 As String, ByVal file2 As String) As Boolean
    Dim fnum1 As Integer, isOpen1 As Boolean
    Dim fnum2 As Integer, isopen2 As Boolean
    Dim buffer1 As String, buffer2 As String
    Dim bytesLeft As Long
    
    ' staille du buffer
    Const BUFFERSIZE = 10240
    
    buffer1 = Space$(BUFFERSIZE)
    buffer2 = buffer1
    
    On Error GoTo ExitProc
    
    ' compare d'abord la longueur du fichier
    bytesLeft = FileLen(file1)
    If bytesLeft <> FileLen(file2) Then Exit Function
    
    'ouverture du premier fichier
    fnum1 = FreeFile
    Open file1 For Binary As #fnum1
    isOpen1 = True
    
    ' ouverture du second
    fnum2 = FreeFile
    Open file2 For Binary As #fnum2
    isopen2 = True
    
    Do While bytesLeft

        If bytesLeft < Len(buffer1) Then
            buffer1 = Space$(bytesLeft)
            buffer2 = buffer1
        End If

        Get #fnum1, , buffer1
        Get #fnum2, , buffer2
        If buffer1 <> buffer2 Then Exit Do
        bytesLeft = bytesLeft - Len(buffer1)
    Loop
    
    CompareFiles = (bytesLeft = 0)

    
ExitProc:
    If isOpen1 Then Close #fnum1
    If isopen2 Then Close #fnum2

    If Err Then
        Err.Raise Err.Number, , Err.Description
    End If

End Function

A voir également

Ajouter un commentaire Commentaires
sghchafaa Messages postés 104 Date d'inscription mardi 27 novembre 2007 Statut Membre Dernière intervention 16 juillet 2010
2 juil. 2008 à 11:14
sélém alikom;
comme il a dit SEBSAKO,tres utile votre code,mais il ne reste qu'a verifier sa validiter.
ensuite je veut prendre votre permission de prendre votre code et l'integrer dans mon code de projet fin d'etude que je prepare!!!!!!!!!!!!!?
merci d'avance de votre effort
Sélém alikom.
sbesako Messages postés 1 Date d'inscription mercredi 25 janvier 2006 Statut Membre Dernière intervention 30 janvier 2006
30 janv. 2006 à 14:34
Très pratique votre script, j'aimerais l'intégrer dans mon programme mais j'ai essayé de l'exécuter et ça ne marche pas. j'ai une erreur a la première ligne. j'ai vérifier la syntaxe de byval apparemment tout semble correct.
Pouvez-vous l'exécuter de votre coté à nouveau pour voir si vous n'aurez pas le même problème que moi?

Merci.
cs_urban Messages postés 8 Date d'inscription vendredi 21 juin 2002 Statut Membre Dernière intervention 8 août 2002
8 août 2002 à 00:23
Moi j'utilise File Compare du dos (FC.EXE). Très pratique, il ressort les divergences et se resynchronise ... C'est certainement le plus difficile (la re synchronistion)
cs_Patrice99 Messages postés 1221 Date d'inscription jeudi 23 août 2001 Statut Membre Dernière intervention 9 septembre 2018
31 juil. 2002 à 15:57
Sinon ya windiff.exe qui fait un matching de 2 fichiers en indiquant les portions qui coincident, c'est un utilitaire livré avec les outils de VC++ de microsoft

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.