Cómo: Leer archivos de texto delimitado por comas en Visual Basic
Actualización: noviembre 2007
El objeto TextFieldParser proporciona un método para analizar de forma sencilla y eficaz archivos de texto estructurados, como registros. La propiedad TextFieldType define si se trata de un archivo delimitado o uno con campos de ancho fijo de texto.
Para analizar un archivo de texto delimitado por comas
Cree un nuevo objeto TextFieldParser. El código siguiente crea el objeto TextFieldParser denominado MyReader y abre el archivo test.txt.
Using MyReader As New _ Microsoft.VisualBasic.FileIO.TextFieldParser _ ("C:\TestFolder\test.txt")
Defina el tipo de TextField y el delimitador. El código siguiente define la propiedad TextFieldType como Delimited y el delimitador como ",".
MyReader.TextFieldType = FileIO.FieldType.Delimited MyReader.SetDelimiters(",")
Recorra los campos del archivo. Si alguna línea está dañada, cree un informe de error y continúe el análisis. El código siguiente recorre el archivo para mostrar cada campo a la vez e indica los campos con formato incorrecto.
Dim currentRow As String() While Not MyReader.EndOfData Try currentRow = MyReader.ReadFields() Dim currentField As String For Each currentField In currentRow MsgBox(currentField) Next Catch ex As _ Microsoft.VisualBasic.FileIO.MalformedLineException MsgBox("Line " & ex.Message & _ "is not valid and will be skipped.") End Try
Cierre los bloques While y Using con End While y End Using.
End While End Using
Ejemplo
En este ejemplo se lee el archivo test.txt.
Using MyReader As New _
Microsoft.VisualBasic.FileIO.TextFieldParser("C:\testfile.txt")
MyReader.TextFieldType = FileIO.FieldType.Delimited
MyReader.SetDelimiters(",")
Dim currentRow As String()
While Not MyReader.EndOfData
Try
currentRow = MyReader.ReadFields()
Dim currentField As String
For Each currentField In currentRow
MsgBox(currentField)
Next
Catch ex As Microsoft.VisualBasic.FileIO.MalformedLineException
MsgBox("Line " & ex.Message & _
"is not valid and will be skipped.")
End Try
End While
End Using
Programación eficaz
Las condiciones siguientes pueden producir una excepción:
No se puede analizar una fila con el formato especificado (MalformedLineException). El mensaje de excepción especifica la línea que produce la excepción y se asigna TextFieldParser.ErrorLine (Propiedad) al texto contenido en la línea.
El archivo especificado no existe (FileNotFoundException).
Una situación de confianza parcial en la que el usuario no tiene los permisos necesarios para tener acceso al archivo. (SecurityException).
La ruta de acceso es demasiado larga (PathTooLongException).
El usuario no tiene permisos suficientes para el acceso al archivo (UnauthorizedAccessException).
Vea también
Tareas
Cómo: Leer archivos de texto de ancho fijo en Visual Basic
Cómo: Leer archivos de texto con varios formatos en Visual Basic
Tutorial: Manipular archivos y directorios en Visual Basic
Solución de problemas: Leer y escribir en archivos de texto
Conceptos
Analizar archivos de texto con el objeto TextFieldParser