これを実行すると、フィールドにデータを入力するためのダミーの「Button1」が作成され、テキストボックスに正しく入力されます。どのように私は毎分そのファイルを解析するでしょう、私は再びそれを行うとき、私は以下のエラーが表示されます。 button1_clickにルーチン "DisplayForm_Load"を追加することによって、うまく動作します。VB ParseFileTextメソッドのエラー
私の質問は毎回これを再定義する必要はないと私は確信していますか?インデックスを0に戻したり、それらの行に沿って何かを設定していないと思います。私がMSのウェブサイトから理解できることは、存在しない配列の索引付けのようなものです。
エラーを受信: 型 'System.IndexOutOfRangeException' の未処理の例外がWindowsApplication4.exeで発生した
Imports Microsoft.VisualBasic.FileIO
パブリック・クラスのForm1に
Private Directory As String ' Used to hold the folder directory to push/pull data from.
Private FileParser As Microsoft.VisualBasic.FileIO.TextFieldParser
Private Sub PushButton_Click(ByVal sender As Object, ByVal e As EventArgs) Handles PushButton.Click
' Sends information to txt file.
' This bit works fine, just writes code to txt file that can be parsed below.
End Sub
Sub DefineTextFieldParse_Load() Handles MyBase.Load
' Instantiate teh TextFieldParser and the set the delimiter
Dim FileName As String = "C:\Users\Caleb\Documents\TestDoc.txt"
Try
FileParser = New FileIO.TextFieldParser(FileName) '' Selects File to Parse
FileParser.TextFieldType = FieldType.Delimited
FileParser.SetDelimiters(",")
Catch ex As Exception
' Errors
MessageBox.Show("Unable to read the file" & "," & FileName)
End Try
End Sub
Sub UpdateCheck()
' Checks share txt file for update.
Dim FileName As String = "C:\Users\<Me>\Documents\TestDoc.txt"
Dim FieldString() As String
'Read the file
If Not FileParser.EndOfData Then
FieldString = FileParser.ReadFields()
' 1st Field
NIS1TextBox.Text = FieldString(0)
' 2nd Field
NIS2TextBox.Text = FieldString(1)
' You get the idea...All Testboxes identified above in the write section
' Repeats 12 more times...
EODTextBox.Text = FieldString(14)
InfoRichTextBox.Text = FieldString.LastOrDefault()
End If
End Sub
Sub PushUpdate()
End Sub
Private Sub Button1_Click_1(sender As Object, e As EventArgs) Handles Button1.Click
'DefineTextFieldParse_Load()_Load() ' When Enabled code works fine when commented out generates alert.
UpdateCheck()
End Sub
エンドクラス
例外が発生するのはどのラインですか?その行にはどの索引が使用されていますか?そのインデックスの有効範囲は何ですか? – jmcilhinney
1つの 'TextFieldParser'オブジェクトを持たないことをお勧めします。あなたはいつどこでそれを必要とするのかを作成し、それを直ちに破壊するべきです。 'Using'ステートメントで作成すると、ブロックの最後に暗黙的に破棄されます。そうすると、最後の使用から何かが引き継がれる可能性はありません。 – jmcilhinney