Partager via


Comment : lire des fichiers texte délimités par des virgules dans Visual Basic

L'objet TextFieldParser permet d'analyser facilement et efficacement les fichiers texte structurés, tels que les journaux.La propriété TextFieldType définit s'il s'agit d'un fichier délimité ou d'un fichier dont les champs de texte ont une largeur fixe.

Pour analyser un fichier texte séparé par des virgules

  1. Créez un TextFieldParser.Le code suivant crée le TextFieldParser nommé MyReader et ouvre le fichier test.txt.

    Using MyReader As New Microsoft.VisualBasic.
                          FileIO.TextFieldParser(
                            "C:\TestFolder\test.txt")
    
  2. Définissez le type et le séparateur de TextField.Le code suivant définit la propriété TextFieldType comme Delimited et « , » comme séparateur.

    MyReader.TextFieldType = FileIO.FieldType.Delimited
    MyReader.SetDelimiters(",")
    
  3. Parcourez les champs du fichier.Si des lignes sont endommagées, signalez une erreur poursuivez l'analyse.Le code suivant parcourt le fichier et affiche tour à tour chaque champ en signalant ceux qui sont mis en forme incorrectement.

    
    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. Fermez les blocs While et Using avec End While et End Using.

       End While
    End Using
    

Exemple

Cet exemple lit le fichier 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

Programmation fiable

Les conditions ci-dessous peuvent générer une exception.

  • Une ligne ne peut pas être analysée avec le format spécifié (MalformedLineException).Le message d'exception spécifie la ligne qui provoque l'exception, tandis que la propriété ErrorLine est assignée au texte contenu dans la ligne.

  • Le fichier spécifié n'existe pas (FileNotFoundException).

  • Une situation de niveau de confiance partiel dans laquelle l'utilisateur n'a pas les autorisations suffisantes pour accéder au fichier.(SecurityException).

  • Le chemin d'accès est trop long (PathTooLongException

  • L'utilisateur n'a pas les autorisations suffisantes pour accéder au fichier (UnauthorizedAccessException).

Voir aussi

Tâches

Comment : lire des fichiers texte de largeur fixe dans Visual Basic

Comment : lire des fichiers texte avec plusieurs formats dans Visual Basic

Procédure pas à pas : manipulation de fichiers et de répertoires en Visual Basic

Dépannage : lecture et écriture dans des fichiers texte (Visual Basic)

Dépannage des exceptions : Microsoft.VisualBasic.FileIO.TextFieldParser.MalformedLineException

Référence

Microsoft.VisualBasic.FileIO.TextFieldParser

Concepts

Analyse des fichiers texte avec l'objet TextFieldParser (Visual Basic)