Analizar archivos de texto con el objeto TextFieldParser (Visual Basic)

El objeto TextFieldParser permite analizar y procesar archivos muy grandes estructurados como columnas de texto con ancho delimitado, como archivos de registro o información de la base de datos heredada. Analizar un archivo de texto con TextFieldParser es similar a recorrer en iteración un archivo de texto, mientras que el método parse para extraer campos de texto es similar a los métodos de manipulación de cadenas usados para acortar cadenas delimitadas.

Analizar diferentes tipos de archivos de texto

Los archivos de texto pueden tener campos con diversas anchuras, delimitados por un carácter, como una coma o un espacio de tabulación. Defina TextFieldType y el delimitador, como en el ejemplo siguiente, que usa el método SetDelimiters para definir un archivo de texto delimitado por tabulaciones:

testReader.SetDelimiters(vbTab)

Otros archivos de texto pueden tener anchos de campos fijos. En tales casos, debe definir TextFieldType como FixedWidth y definir los anchos de cada campo, como en el ejemplo siguiente. En este ejemplo se usa el método SetFieldWidths para definir las columnas de texto: la primera columna es de 5 caracteres de ancho, la segunda de 10, la tercera de 11 y la cuarta es de ancho variable.

testReader.SetFieldWidths(5, 10, 11, -1)
testReader.TextFieldType = Microsoft.VisualBasic.FileIO.FieldType.FixedWidth

Una vez definido el formato, puede recorrer en bucle el archivo usando el método ReadFields para procesar cada línea sucesivamente.

Si un campo no coincide con el formato especificado, se genera una excepción MalformedLineException. Cuando se producen dichas excepciones, en las propiedades ErrorLine y ErrorLineNumber se indica el texto que da lugar a la excepción y el número de línea de dicho texto.

Analizar archivos con varios formatos

El método PeekChars del objeto TextFieldParser se puede usar para comprobar cada campo antes de leerlo, lo que le permite definir varios formatos para los campos y actuar en consecuencia. Para obtener más información, consulte Cómo: Leer archivos de texto con varios formatos.

Vea también