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 de ancho delimitado, como archivos de registro o información de 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 de análisis para extraer archivos de texto es similar a los métodos de manipulación de cadenas que se utilizan para convertir cadenas delimitadas en símbolos.
Analizar diferentes tipos de archivos de texto
Los archivos de texto pueden tener campos de varios anchos, delimitados por un carácter como una coma o un espacio de tabulación. Defina la propiedad TextFieldType y el delimitador, como en el ejemplo siguiente, que utiliza el método SetDelimiters para definir un archivo de texto delimitado por tabulaciones:
testReader.SetDelimiters(vbTab)
Otros archivos de texto pueden tener anchos de campo fijos. En tal caso, es necesario definir TextFieldType como FixedWidth y definir los anchos de cada campo, como en el ejemplo siguiente. Este ejemplo utiliza el método SetFieldWidths para definir las columnas de texto: la primera columna es de 5 caracteres de ancho, la segunda es 10, la tercera 11 y la cuarta es de ancho variable.
testReader.SetFieldWidths(5, 10, 11, -1)
testReader.TextFieldType = Microsoft.VisualBasic.FileIO.FieldType.FixedWidth
Cuando se define el formato, se puede recorrer el archivo utilizando el método ReadFields para procesar cada línea.
Si un campo no coincide con el formato especificado, se produce una excepción MalformedLineException. Cuando se produce este tipo de excepciones, las propiedades ErrorLine y ErrorLineNumber contienen el texto que produce la excepción y el número de línea de ese texto.
Analizar archivos con varios formatos
El método PeekChars del objeto TextFieldParser se puede utilizar para comprobar cada archivo antes de leerlo, lo que permite definir varios formatos para los campos y actuar en consecuencia. Para obtener más información, vea Cómo: Leer archivos de texto con varios formatos en Visual Basic.