Link to home
Start Free TrialLog in
Avatar of revis
revis

asked on

Code in VB6 showing text file differences:

Does anyone have some code I can put into my Application comparing 2 text files and showing the difference between the two files. If you have code for an entire app to do this that would be great, but if not thats OK too. I'm using VB6.
ASKER CERTIFIED SOLUTION
Avatar of Michael_D
Michael_D
Flag of Canada image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of anv
anv

try this

Public Function AreTheyTheSame(ByVal File1 As String, _
  ByVal File2 As String, Optional StringentCheck As _
  Boolean = False) As Boolean
'**********************************************************
'PURPOSE: Check to see if two files are identical
'File1 and File2 = FullPaths of files to compare
'StringentCheck (optional): If false (default),
'will only compare file lengths.  If true, a
'byte by byte comparison is conducted if file lengths are
'equal
'**********************************************************

On Error GoTo ErrorHandler

If Dir(File1) = "" Then Exit Function
If Dir(File2) = "" Then Exit Function

Dim lLen1 As Long, lLen2 As Long
Dim iFileNum1 As Integer
Dim iFileNum2 As Integer
Dim bytArr1() As Byte, bytArr2() As Byte
Dim lCtr As Long, lStart As Long
Dim bAns As Boolean

lLen1 = FileLen(File1)
lLen2 = FileLen(File2)
If lLen1 <> lLen2 Then
    Exit Function
ElseIf StringentCheck = False Then
        AreTheyTheSame = True
        Exit Function
Else
    iFileNum1 = FreeFile
    Open File1 For Binary Access Read As #iFileNum1
    iFileNum2 = FreeFile
    Open File2 For Binary Access Read As #iFileNum2

    'put contents of both into byte Array
    bytArr1() = InputB(LOF(iFileNum1), #iFileNum1)
    bytArr2() = InputB(LOF(iFileNum2), #iFileNum2)
    lLen1 = UBound(bytArr1)
    lStart = LBound(bytArr1)
   
    bAns = True
    For lCtr = lStart To lLen1
        If bytArr1(lCtr) <> bytArr2(lCtr) Then
            bAns = False
            Exit For
        End If
           
    Next
    AreTheyTheSame = bAns
       
End If
 
ErrorHandler:
If iFileNum1 > 0 Then Close #iFileNum1
If iFileNum2 > 0 Then Close #iFileNum2
End Function