currentrow = MyParser.ReadFields()
줄에 중단 점을 배치하면 currentrow에는 여전히 파일에서 파싱 된 이전 줄의 값이 포함됩니다. currentrow = MyParser.ReadFields()
이 실행 된 후 현재 파일 줄 값이 저장됩니다.배열의 값이 while 루프에 유지되는 이유는 무엇입니까? (VB.NET)
현재 루프가 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
이것은 File.Exists()를 잘못 사용하는 것입니다. 파일을 열고 대신 FileNotFoundException을 처리하십시오. –
또한 루프를 올바르게 구성하는 한 currentrow가 여전히 이전 값을 유지하는 것이 바람직하지 않습니까? –
@JoelCoehoorn : 예외 잡기와 File.Exists()로 확인하는 것의 차이에 관해서 나에게 좀 더 많은 정보를 줄 수 있습니까? 왜 후자가 좋지 않은지? – user1620141