Analisando arquivos de texto com o objeto TextFieldParser (Visual Basic)
O objeto TextFieldParser
permite analisar e processar arquivos muito grandes estruturados como colunas de texto de largura delimitada, como arquivos de log ou informações de banco de dados herdadas. Analisar um arquivo de texto com TextFieldParser
é semelhante a iterar em um arquivo de texto, enquanto o método de análise para extrair campos de texto é semelhante a métodos de manipulação de cadeias de caracteres usados para criar tokens para cadeias de caracteres delimitadas.
Analisando tipos diferentes de arquivos de texto
Arquivos de texto podem ter campos com larguras variadas, delimitados por um caractere como uma vírgula ou um espaço de tabulação. Defina TextFieldType
e o delimitador, como no exemplo a seguir, que usa o método SetDelimiters
para definir um arquivo de texto delimitado por tabulação:
testReader.SetDelimiters(vbTab)
Outros arquivos de texto podem ter larguras de campo fixas. Nesses casos, você precisa definir o TextFieldType
como FixedWidth
e definir as larguras de cada campo, como no exemplo a seguir. Este exemplo usa o método SetFieldWidths
para definir as colunas de texto: a primeira coluna tem 5 caracteres de largura, a segunda tem 10, a terceira tem 11 e a quarta tem largura variável.
testReader.SetFieldWidths(5, 10, 11, -1)
testReader.TextFieldType = Microsoft.VisualBasic.FileIO.FieldType.FixedWidth
Após o formato ser definido, você pode executar um loop no arquivo, usando o método ReadFields
para processar uma linha por vez.
Se um campo não coincidir com o formato especificado, uma exceção MalformedLineException será lançada. Quando essas exceções são geradas, as propriedades ErrorLine
e ErrorLineNumber
retêm o texto causador da exceção e o número de linha do texto.
Analisando arquivos com vários formatos
O método PeekChars
do objeto TextFieldParser
pode ser usado para verificar cada campo antes da leitura, permitindo definir vários formatos para os campos e reagir adequadamente. Para obter mais informações, consulte Como ler de arquivos de texto com vários formatos.