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

  1. 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")
    
  2. 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(",")
    
  3. 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
    
  4. 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:

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

Solución de problemas de excepciones: Microsoft.VisualBasic.FileIO.TextFieldParser.MalformedLineException

Conceptos

Analizar archivos de texto con el objeto TextFieldParser

Referencia

TextFieldParser (Objeto)