ファイルの内容が同じか調べる

<戻る

ここに載せてあるソースコードは、参考のために載せてあります

サンプルコードは、一番下にLZHとしてあります

前回のLikeを使った"ファイルの内容が同じか調べる"は、
欠陥がある事が分かりましたので新しくサンプルを作り直しました
Lukia.dllが必要です(2000/7/10)
2001/8/5 - VisualBasicの標準機能でも可能なので作りなおしました。




Option Explicit


'下記のようにすると
'ヌル値の後も比較されていることがわかります
'
'StrComp("A" & vbNullChar & "B", "A" & vbNullChar & "C")
'結果は、-1 (同じではない)
'

'フォームをロードしました
Private Sub Form_Load()
    
    '比較するファイルをテキストボックスに設定します
    Text1.Text = App.Path & "\" & "project1.gif"
    Text2.Text = App.Path & "\" & "dll.gif"
End Sub

'比較ボタンをクリックしました
Private Sub Command1_Click()
    
    'テキストボックスに入力してある
    'ふたつのファイルを比較して結果を表示します
    If FileBinaryCompare(Text1.Text, Text2.Text) = True Then
        Label4.Caption = "同じです"
    Else
        Label4.Caption = "同じではありません"
    End If
    
End Sub

'指定のふたつのファイルをバイナリ比較して
'同じファイルであるかを返します
Function FileBinaryCompare(ByVal strFile1 As String, ByVal strFile2 As String) As Boolean
    Dim fn          As Integer
    Dim fz1         As Long
    Dim fz2         As Long
    Dim bytArray1() As Byte
    Dim bytArray2() As Byte
    Dim j           As Long
    Dim jmax        As Long
    
    'ファイル1を読み込みます
    fn = FreeFile
    fz1 = FileLen(strFile1) - 1
    ReDim bytArray1(fz1)
    Open strFile1 For Binary As #fn
        Get #fn, , bytArray1
    Close
    
    'ファイル2を読み込みます
    fn = FreeFile
    fz2 = FileLen(strFile2) - 1
    ReDim bytArray2(fz2)
    Open strFile2 For Binary As #fn
        Get #fn, , bytArray2
    Close
    
    'ふたつの内容を比較して
    '結果を関数に返します
    FileBinaryCompare = CBool(StrComp(bytArray1, bytArray2, vbBinaryCompare) = 0)
    
End Function



<戻る

Sample63.lzh


http://hp.vector.co.jp/authors/VA015521/