Porady: odczyt z plików testowych o stałej szerokości w Visual Basic
TextFieldParser Obiektu daje możliwość łatwego i efektywnego analizować pliki tekstowe strukturalne, takie jak dzienniki.
TextFieldType Właściwość określa, czy jest analizowana składniowo pliku, plik rozdzielany lub taki, który zawiera pola o stałej szerokości tekstu.W pliku tekstowym o stałej szerokości pole na końcu może mieć zmiennej szerokości.Aby określić, że pole na końcu ma zmiennej szerokość, zdefiniuj mają szerokość mniejszą niż lub równa zero.
Aby analizować plik tekstu o stałej szerokości
Utwórz nowy TextFieldParser.Poniższy kod tworzy TextFieldParser o nazwie Reader i otwiera plik test.log.
Using Reader As New Microsoft.VisualBasic. FileIO.TextFieldParser("C:\TestFolder\test.log")
Definiowanie TextFieldType właściwości jako FixedWidth, definiowanie szerokości i format.W poniższym kodzie zdefiniowano kolumn tekstu; pierwszy z nich to 5 znaków, drugie 10, 11 trzeci i czwarty jest o zmiennej szerokości.
Reader.TextFieldType = Microsoft.VisualBasic.FileIO.FieldType.FixedWidth Reader.SetFieldWidths(5, 10, 11, -1)
W pętli pól w pliku.Jeśli wszystkie wiersze są uszkodzone, Zgłoś błąd i kontynuować analizowania.
Dim currentRow As String() While Not Reader.EndOfData Try currentRow = Reader.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
Close the While and Using blocks with End While and End Using.
End While End Using
Przykład
W tym przykładzie odczytuje z pliku test.log.
Using Reader As New Microsoft.VisualBasic.FileIO.
TextFieldParser("C:\TestFolder\test.log")
Reader.TextFieldType =
Microsoft.VisualBasic.FileIO.FieldType.FixedWidth
Reader.SetFieldWidths(5, 10, 11, -1)
Dim currentRow As String()
While Not Reader.EndOfData
Try
currentRow = Reader.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
Stabilne programowanie
Następujące warunki, może spowodować wyjątek:
Wiersza nie można analizować przy użyciu określonego formatu (MalformedLineException).Komunikat wyjątku Określa wiersz, powodując wyjątek, podczas gdy ErrorLine właściwość jest przypisany do tekstu zawartego w wierszu.
Określony plik nie istnieje (FileNotFoundException).
Sytuacja częściowego zaufania, użytkownik nie ma wystarczających uprawnień do uzyskania dostępu do pliku.(SecurityException).
Ścieżka jest zbyt długa (PathTooLongException).
Użytkownik nie ma wystarczających uprawnień do uzyskania dostępu do pliku (UnauthorizedAccessException).
Zobacz też
Zadania
Porady: odczyt z rozdzielonych przecinkami plików testowych w Visual Basic
Porady: odczyt z plików tekstowych w wielu formatach w Visual Basic
Wskazówki: manipulowanie plikami i katalogami w Visual Basic
Rozwiązywanie problemów: odczytywanie z oraz zapisywanie w plikach tekstowych (Visual Basic)
Informacje
Koncepcje
Analizowanie plików tekstowych za pomocą obiektu TextFieldParser (Visual Basic)