VB OpenFileDialogと読み込み
OpenFileDialogを使用したテキストファイルの読み込みについて質問します。
TextFile.txt, TextFile2.txt, TextFile3.txt(内容は名前,電話番号)というファイルがあるとし、OpenFileDialogで選択してラベルまたはテキストボックスに表示させたいのですが、TextFile.txti以外のファイルを選んでもTextFile.txtの内容が表示されます。
VBの本に載っている二つのコードをそのまま使用してみました。
Imports Microsoft.VisualBasic.FileIO
Public Class Form1
' decrare modul level variable
'モジュールレベルの宣言
Private NamePhoneTextFieldParser As TextFieldParser
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Instatiate the ThextFieldPerser and set the deliminate
'Deliminateの設定とか
Dim Filestring As String = "TextFile.txt"
Try
NamePhoneTextFieldParser = New TextFieldParser(Filestring)
NamePhoneTextFieldParser.TextFieldType = FieldType.Delimited
NamePhoneTextFieldParser.SetDelimiters(",")
Catch ex As Exception
MessageBox.Show("Unable to read the file:" & Filestring, "File Error")
End Try
End Sub
Private Sub OFDBtn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OFDBtn.Click
Dim ReponseDialogResult As DialogResult
Dim stream As System.IO.Stream
' Set up and display the OpenFileDialog
'OpenFIleDialogのセットアップ
With OpenFileDialog1
.FileName = "TextFile.txt"
.Title = "Directory for File"
.Filter = "Text File (*.txt)|*.txt|All Files (*.*)|*.*"
'DIsplay Dialog Box
ReponseDialogResult = .ShowDialog
If ReponseDialogResult = DialogResult.OK Then
stream = OpenFileDialog1.OpenFile()
Else
Exit Sub
End If
'電話番号と名前をファイルから読み取る
On Error Resume Next
Dim FieldString() As String ' Must be a strng array for deliminated fields
If Not NamePhoneTextFieldParser.EndOfData Then
FieldString = NamePhoneTextFieldParser.ReadFields()
' 最初の Field
Nametxt.Text = FieldString(0)
'二番目の Field
Phonetxt.Text = FieldString(1)
Else
MessageBox.Show("No more records to display.", "End of Data")
End If
End With
End Sub
End Class
です。
Dim Filestring As String = "TextFile.txt"
NamePhoneTextFieldParser = New TextFieldParser(Filestring)
または
.FileName = "TextFile.txt"
のどれかが影響しているのかなと疑っているのですが(特に前者)、合ってますでしょうか?
上記のコードでTextFile.txtを指定してしまっているのを、TextFile2.txt, TextFile3.txtと自分で選択したものを読み込ませて表示させたい場合、どう記述を変更したらよいでしょうか?
ちなみにいずれのテキストファイルもカンマで区切られた一組の名前と電話番号です。