.net 2.0 で書かれたプログラムがあり、2 つのテキスト ファイルを比較する必要があります。次のコードを試しました
Dim fileA As String
Dim fileB As String
Dim fileypath As String = (Environment.GetEnvironmentVariable("APPDATA") & "\ARLS\")
Dim sReaderA As New IO.StreamReader(New IO.FileStream(fileypath & "orig.dat", IO.FileMode.Open))
Dim sReaderB As New IO.StreamReader(New IO.FileStream(fileypath & "comp.dat", IO.FileMode.Open))
fileA = sReaderA.ReadToEnd
fileB = sReaderB.ReadToEnd
sReaderA.Close()
sReaderB.Close()
If fileA.CompareTo(fileB) = -1 Then
MessageBox.Show(fileB.Replace(fileA, "")) '/// show the words in fileB which differ from fileA.
End If
If fileB.CompareTo(fileA) = -1 Then
MessageBox.Show(fileA.Replace(fileB, "")) '/// show the words in fileB which differ from fileB.
End If
また、行末に何かが追加された場合にのみ表示されることを除いて機能します。途中で何かを追加または削除すると、テキスト ファイル全体が表示されます。何か案は。
<--EDIT-->
そこで、2 つのリスト ボックスを作成し、テキスト ファイルをそれぞれにダンプしてから、リスト ボックスを次のコードと比較することで機能させました。For i As Integer = 0 To ListBox2.Items.Count - 1
If ListBox1.Items.Contains(ListBox2.Items(i)) Then
Else
LogPrint(ListBox2.Items(i))
End If
Next
For i As Integer = 0 To ListBox1.Items.Count - 1
If ListBox2.Items.Contains(ListBox1.Items(i)) Then
Else
LogPrint(ListBox1.Items(i))
End If
Next
ListBox2.Items.Clear()
ListBox1.Items.Clear()
これで違いがわかりますが、それは長い道のりのようです。リストボックスを使わずにそれを行うより良い方法があるかどうかは誰にも分かりますか?