ユーザーがOpenFileDialogから2つのファイルを選択する必要があるプログラムに取り組んでいます。ファイル名やパスをプログラムにハードコーディングしたくありません。これらのファイルの内容をリストボックスの2つの列に表示する必要があります。
これまでのところ、次のコードがあります。
OpenFileDialog.ShowDialog()
OpenFileDialog.Filter = "Text Files(.txt)|*.txt"
OpenFileDialog.Title = "Open A Text File"
OpenFileDialog.Multiselect = True
Dim FileArray(1) As String
Dim objreader As New System.IO.StreamReader(OpenFileDialog.FileName)
Dim i = 0
ListBox1.Items.Clear()
ListBox1.Items.Add("Name" & Space$(40) & "ID Number")
Do While objreader.Peek() <> -1
If OpenFileDialog.FileNames.Length = 5 Then
FileArray(0) = objreader.ReadLine & vbCr
Else
FileArray(1) = objreader.ReadLine & vbCr
End If
ListBox1.Items.Add(FileArray(0) & Space$(40) & FileArray(1))
Loop
私が考えているのは、最初に選択されたファイル'Names.txt'がFileArray(0)に入力され(ファイル名の長さが5文字であるため)、リストボックスの正しい列に入力されていることです。
ただし、2回目のループでは、2番目のファイル「IDNumbers.txt」が読み取られてFileArray(1)に入力され(「If」に失敗するため)、リストボックスの最初の配列が上書きされます。
私の質問は、各ファイルをFileArray(1)の独自の要素にロードして、それらをリストボックスに正しくロードし、後でデータを操作できるようにする方法です。