Jak: číst soubory s pevnou šířkou v jazyce Visual Basic
Objekt TextFieldParser umožňuje snadnou a efektivní cestu k zpracování strukturovaných textový souborů, jakými jsou například protokoly.
TextFieldType Vlastnost určuje, zda soubor analyzovanou souboru s oddělovači nebo která obsahuje pole s pevnou šířkou textu.V souboru s pevnou šířkou pole na konci může mít proměnnou šířku.Chcete-li určit, zda má pole na konci proměnné šířky, definujte ji mít šířku menší než nebo rovna nule.
Chcete-li analyzovat textový soubor o pevné šířce
Vytvořte nový TextFieldParser.Následující kód vytvoří TextFieldParser s názvem Reader a otevře soubor test.log.
Using Reader As New Microsoft.VisualBasic. FileIO.TextFieldParser("C:\TestFolder\test.log")
Definujte vlastnost TextFieldType jako FixedWidth, nastavte šířku a formát. Následující kód definuje sloupce textu; první je 5 znaků široký, druhý 10, třetí 11 a čtvrtý je proměnné šířky.
Reader.TextFieldType = Microsoft.VisualBasic.FileIO.FieldType.FixedWidth Reader.SetFieldWidths(5, 10, 11, -1)
Projděte všechny pole v souboru.Pokud jsou řádky poškozeny, ohlaste chybu a pokračujte v analýze.
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
Zavřete bloky While a Using pomocí End While a End Using.
End While End Using
Příklad
V tomto příkladu načteme soubor 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
Robustní programování
Následující případy mohou způsobit výjimku:
Řádek nelze analyzovat pomocí zadaného formátu (MalformedLineException).Zpráva výjimky určuje řádek, který způsobil vyjímku a vlastnost ErrorLine je přiřazena k textu obsaženém na řádku.
Zadaný soubor neexistuje (FileNotFoundException).
Situace částečné důvěryhodnosti, ve kterých uživatelský kód nemá dostatečná přístupová oprávnění k souboru.(SecurityException).
Cesta je příliš dlouhá (PathTooLongException).
Uživatel nemá dostatečná oprávnění pro přístup k souboru (UnauthorizedAccessException).
Viz také
Úkoly
Jak: číst soubory textu odděleného čárkami v jazyce Visual Basic
Jak: čtení z textových souborů s více formáty jazyka Visual Basic
Názorný postup: Zpracování souborů a adresářů v jazyce Visual Basic
Poradce při potížích: Čtení a zápisu do textových souborů (Visual Basic)
Referenční dokumentace
Microsoft.VisualBasic.FileIO.TextFieldParser
Koncepty
Analýza textové soubory s objektem TextFieldParser (Visual Basic)