1

2つのテキストファイルがあるとしましょう。ここで一意のキーが生成されるため、比較します(テキストの行番号に基づいて->以下を参照)。

sample1.txt:

5th line -> _000_000F_01CE2577.B840E640

sample2.txt

5th line -> _000_000F_01CE2577.B840E640

これが私のコードです:

            Dim FILE_NAME As String = "C:\myfiles"

            'This is to determine the number of lines in the text file
            Dim count As Integer
            count = 0

            Dim obj As StreamReader
            obj = New StreamReader(FILE_NAME)

            Do Until obj.ReadLine Is Nothing
                count = count + 1
            Loop

            '------------------------------
            'this is my computation to get the number of line -->disregard this

            Dim temp3 As Integer
            temp3 = count - 3
            '------------------------------

            obj.Close()

            'This is to read all the text in the text file
            Dim fileReader(fs) As String
            fileReader(fs) = My.Computer.FileSystem.ReadAllText(FILE_NAME, _
                        System.Text.Encoding.ASCII)

各ファイルを配列に保存しました例:

             file[0]
             file[1]

次に、各ファイルとその内容を読み取る必要があります。次に、テキスト行を相互に比較します。正規表現を使用する必要があると思います。

テキストの行を比較する方法についてのいくつかのポインタを教えてください...

例:sample1.txtの5行目==sample2.txtの5行目

それらが同じかどうかを知る必要があります。

4

1 に答える 1

1

これはあなたのために仕事をするはずです
.txtファイルの各行を読み取り、それを配列に保存してから比較します
注:パスを設定すると、2つのtxtファイル
が実行されます。ファイル1よりもファイル2の行が少ない場合、範囲外になります。ただし、その場合を処理するために少しのコードを追加できます。

Option Explicit

Sub Read_text_File()

    Dim firstFile() As String, secondFile() As String
    Dim path1 As String, path2 As String
    Dim i As Long

    path1 = "C:\ ... .txt"
    path2 = "C:\ ... .txt"

    Call fill_array(firstFile, path1)
    Call fill_array(secondFile, path2)

    For i = LBound(firstFile) To UBound(firstFile) - 1
        Debug.Print (firstFile(i) & vbTab & vbTab & vbTab & vbTab & secondFile(i))
        If StrComp(firstFile(i), secondFile(i), vbTextCompare) = 0 Then
            MsgBox "Line: " & i + 1 & "  matches "
        End If
    Next i

End Sub

Sub fill_array(ByRef arr() As String, pathToFile As String)

    Dim oFSO As New FileSystemObject
    Dim oFS As TextStream

    Dim cnt As Long
    cnt = 0

    Set oFS = oFSO.OpenTextFile(pathToFile)

    Do Until oFS.AtEndOfStream
        oFS.ReadLine
        cnt = cnt + 1
    Loop
    ReDim arr(cnt)
    Set oFS = oFSO.OpenTextFile(pathToFile)
    cnt = 0
    Do Until oFS.AtEndOfStream
        arr(cnt) = oFS.ReadLine
        cnt = cnt + 1
    Loop

    oFS.Close
    Set oFS = Nothing
End Sub
于 2013-03-20T12:00:47.350 に答える