Analýza textových souborů s objektem TextFieldParser (Visual Basic)
Objekt TextFieldParser umožňuje analyzovat a zpracovat velmi velké soubory, které mají strukturu textu o omezené velikosti sloupce, jako například protokolové soubory nebo databázové informace staršího typu. Analýza textových soubor pomocí TextFieldParser je podobná procházení textového souboru po řádcích a metoda extrahování políček z textu je podobná manipulačním metodám s řetězci, které používají řetězce omezené symbolem.
Analýza různých typů textových souborů
Textové soubory mohou mít různou šířku, oddělenou jinými znaky, například čárkou nebo tabulátorem. Definujte TextFieldType a oddělovače, stejně jak je to provedeno v následujícím příkladu, který používá metodu SetDelimiters k definování souboru s textem odděleným tabulátory:
testReader.SetDelimiters(vbTab)
Jiné textové soubory mohou mít šířku polí, které jsou pevné. V takových případech je třeba definovat TextFieldType jako FixedWidth a určit šířku každého pole, jak je to ukázáno v následujícím příkladu. V tomto příkladu je použita metoda SetFieldWidths k definování textových sloupců: první sloupec je 5 znaků široký, druhý je 10, třetí je 11 a čtvrtý je proměnné šířky.
testReader.SetFieldWidths(5, 10, 11, -1)
testReader.TextFieldType = Microsoft.VisualBasic.FileIO.FieldType.FixedWidth
Po definování formátu lze procházet ve smyčce soubor pomocí metody ReadFields zpracovávat každý řádek.
Pokud pole neodpovídá zadaném formátu, vyjímka MalformedLineException je vyvolána. V případě, že je vyvolána vyjímka, vlastnost ErrorLine a ErrorLineNumber obsahuje text, který způsobuje výjimku a číslo řádky tohoto textu.
Analýza souborů s více formáty
Metodu PeekChars objektu TextFieldParser lze použít ke kontrole každého pole před přečtením, což vám umožňuje definovat více formátů pro pole a odpovídajícím způsobem reagovat. Další informace naleznete v tématu Postupy: Jak číst z textových souborů o více formátech v jazyce Visual Basic.
Viz také
Úkoly
Troubleshooting Exceptions: Microsoft.VisualBasic.FileIO.TextFieldParser.MalformedLineException