Analisar arquivos de texto com o objeto TextFieldParser (Visual Basic)
O objeto TextFieldParser permite que você analise e processe arquivos muito grandes que são estruturados como colunas do texto de largura delimitada, como arquivos de log ou informações do banco de dados herdadas.Analisar um arquivo de texto com TextFieldParser é semelhante a iterar em um arquivo texto, enquanto o método de análise para extrair campos de texto é semelhante aos métodos para manipulação de sequência de caracteres usados para transformar em símbolos sequências de caracteres.
Analisar Diferentes Tipos de Arquivos de Texto
Arquivos de Texto podem ter campos de várias larguras, 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ções:
testReader.SetDelimiters(vbTab)
Outros arquivos de texto podem ter larguras de campo que são fixas.Em tais casos, você precisará 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
Uma vez que o formato é definido, você pode executar um loop através do arquivo, usando o método ReadFields para processar cada linha em retorno.
Se um campo não coincidir com o formato especificado, será apresentada uma exceção MalformedLineException.Quando essas exceções são lançadas, o ErrorLine e ErrorLineNumber propriedades mantém o texto causador da exceção e o número da linha do texto.
Analisar Arquivos com Vários Formatos
O método PeekChars do objeto TextFieldParser pode ser usado para verificar cada campo antes da leitura, permitindo-lhe definir vários formatos para os campos e reagir adequadamente.Para obter mais informações, consulte Como: ler arquivos de texto com vários formatos de Visual Basic.