行にブレークポイントを設定するとcurrentrow = MyParser.ReadFields()
、currentrowには、ファイルから解析された前の行の値が引き続き含まれます。実行後currentrow = MyParser.ReadFields()
、現在のファイル行の値が保存されます。
currentrowはWhileループ内で宣言されているので、Whileループに再び入るときに、前のcurrentrow値がスコープ外になるべきではありませんか?currentrowがファイルの最後の行の値を保持しているのはなぜですか?
に変更Dim currentrow As String()
する必要がありDim currentRow() = New String() {}
ますか?なんで?
If File.Exists(filename) Then
Using MyParser As New FileIO.TextFieldParser(filename)
MyParser.TextFieldType = FileIO.FieldType.Delimited
MyParser.SetDelimiters("~")
While Not MyParser.EndOfData
Try
Dim currentrow As String()
'at this point, currentrow still contains prev values
currentrow = MyParser.ReadFields()
Catch
End Try
End While
End Using
End If