Cómo: Leer archivos de texto delimitados por comas en Visual Basic
El objeto TextFieldParser
proporciona una manera fácil y eficaz de analizar archivos de texto estructurados, como registros. La propiedad TextFieldType
define si se trata de un archivo delimitado o de uno con campos de texto de ancho fijo.
Para analizar un archivo de texto delimitado por comas
Cree un nuevo
TextFieldParser
. El código siguiente crea elTextFieldParser
denominadoMyReader
y abre el archivotest.txt
.Using MyReader As New Microsoft.VisualBasic. FileIO.TextFieldParser( "C:\TestFolder\test.txt")
Defina el tipo
TextField
y el delimitador. El código siguiente define la propiedadTextFieldType
comoDelimited
y el delimitador como ",".MyReader.TextFieldType = FileIO.FieldType.Delimited MyReader.SetDelimiters(",")
Recorra en bucle los campos del archivo. Si hay alguna línea dañada, informe del error y siga analizando. El siguiente código recorre en bucle el archivo y muestra los campos por turnos e indica aquellos que tienen un 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
yUsing
conEnd While
yEnd Using
.End While End Using
Ejemplo
En este ejemplo se lee el archivo test.txt
.
Using MyReader As New Microsoft.VisualBasic.
FileIO.TextFieldParser(
"C:\TestFolder\test.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 sólida
Las condiciones siguientes pueden provocar una excepción:
No se puede analizar una fila utilizando el formato especificado (MalformedLineException). El mensaje de excepción especifica la línea que inicia la excepción, mientras que a la propiedad ErrorLine se le asigna el texto incluido 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 del archivo es demasiado larga (PathTooLongException).
El usuario no tiene permisos suficientes para acceder al archivo (UnauthorizedAccessException).
Vea también
- Microsoft.VisualBasic.FileIO.TextFieldParser
- Procedimiento para leer archivos de texto de ancho fijo
- Procedimiento para leer archivos de texto con varios formatos
- Analizar archivos de texto con el objeto TextFieldParser
- Tutorial: Manipulación de archivos y directorios en Visual Basic
- Solución del problema: leer y escribir en archivos de texto