Porady: odczytywanie z plików tekstowych rozdzielanych przecinkami w Visual Basic
Obiekt TextFieldParser
umożliwia łatwe i wydajne analizowanie plików tekstowych ze strukturą, takich jak dzienniki. Właściwość TextFieldType
określa, czy jest to plik rozdzielany, czy jeden z polami tekstu o stałej szerokości.
Aby przeanalizować rozdzielany przecinkami plik tekstowy
Utwórz nowy element
TextFieldParser
. Poniższy kod tworzyTextFieldParser
nazwęMyReader
i otwiera pliktest.txt
.Using MyReader As New Microsoft.VisualBasic. FileIO.TextFieldParser( "C:\TestFolder\test.txt")
Zdefiniuj
TextField
typ i ogranicznik. Poniższy kod definiujeTextFieldType
właściwość jakoDelimited
i ogranicznik jako ",".MyReader.TextFieldType = FileIO.FieldType.Delimited MyReader.SetDelimiters(",")
Pętla przez pola w pliku. Jeśli jakiekolwiek wiersze są uszkodzone, zgłoś błąd i kontynuuj analizowanie. Poniższy kod wykonuje pętle w pliku, wyświetlając każde pole z kolei i zgłaszając wszystkie pola, które są niepoprawnie sformatowane.
Dim currentRow As String() While Not MyReader.EndOfData Try currentRow = MyReader.ReadFields() Dim currentField As String For Each currentField In currentRow MsgBox(currentField) Next Catch ex As Microsoft.VisualBasic. FileIO.MalformedLineException MsgBox("Line " & ex.Message & "is not valid and will be skipped.") End Try
Zamknij bloki
While
iUsing
za pomocą elementówEnd While
i iEnd Using
.End While End Using
Przykład
Ten przykład odczytuje z pliku test.txt
.
Using MyReader As New Microsoft.VisualBasic.
FileIO.TextFieldParser(
"C:\TestFolder\test.txt")
MyReader.TextFieldType = FileIO.FieldType.Delimited
MyReader.SetDelimiters(",")
Dim currentRow As String()
While Not MyReader.EndOfData
Try
currentRow = MyReader.ReadFields()
Dim currentField As String
For Each currentField In currentRow
MsgBox(currentField)
Next
Catch ex As Microsoft.VisualBasic.
FileIO.MalformedLineException
MsgBox("Line " & ex.Message &
"is not valid and will be skipped.")
End Try
End While
End Using
Niezawodne programowanie
Następujące warunki mogą spowodować wyjątek:
Nie można przeanalizować wiersza przy użyciu określonego formatu (MalformedLineException). Komunikat o wyjątku określa wiersz powodujący wyjątek, podczas gdy ErrorLine właściwość ma przypisany tekst zawarty w wierszu.
Określony plik nie istnieje (FileNotFoundException).
Sytuacja częściowego zaufania, w której użytkownik nie ma wystarczających uprawnień dostępu do pliku. (SecurityException).
Ścieżka jest za długa (PathTooLongException).
Użytkownik nie ma wystarczających uprawnień dostępu do pliku (UnauthorizedAccessException).
Zobacz też
- Microsoft.VisualBasic.FileIO.TextFieldParser
- Instrukcje: odczyt z plików testowych o stałej szerokości
- Instrukcje: odczyt z plików tekstowych w wielu formatach
- Analizowanie plików tekstowych za pomocą obiektu TextFieldParser
- Przewodnik: manipulowanie plikami i katalogami w Visual Basic
- Rozwiązywanie problemów: odczytywanie z plików tekstowych oraz zapisywanie w nich