Partager via


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

L’objet TextFieldParser vous permet d’analyser et de traiter des fichiers très volumineux qui sont structurés en colonnes de largeur délimitée de texte, telles que les fichiers journaux ou les informations de base de données héritées. L’analyse d’un fichier texte avec TextFieldParser est similaire à l’itération sur un fichier texte, tandis que la méthode d’analyse pour extraire des champs de texte est similaire aux méthodes de manipulation de chaînes utilisées pour tokeniser les chaînes délimitées.

Analyse de différents types de fichiers texte

Les fichiers texte peuvent avoir des champs de différentes largeurs, délimités par un caractère tel qu’une virgule ou un espace d’onglet. Définissez TextFieldType et le délimiteur, comme dans l’exemple suivant, qui utilise la SetDelimiters méthode pour définir un fichier texte délimité par tabulation :

testReader.SetDelimiters(vbTab)

D’autres fichiers texte peuvent avoir des largeurs de champ fixes. Dans de tels cas, vous devez définir le TextFieldType comme FixedWidth et définir les largeurs de chaque champ, comme dans l’exemple suivant. Cet exemple utilise la SetFieldWidths méthode pour définir les colonnes de texte : la première colonne est de 5 caractères, la seconde est 10, la troisième est 11 et la quatrième est de largeur variable.

testReader.SetFieldWidths(5, 10, 11, -1)
testReader.TextFieldType = Microsoft.VisualBasic.FileIO.FieldType.FixedWidth

Une fois le format défini, vous pouvez parcourir le fichier en boucle à l’aide de la ReadFields méthode pour traiter chaque ligne à son tour.

Si un champ ne correspond pas au format spécifié, une MalformedLineException exception est déclenchée. Lorsque de telles exceptions sont levées, les ErrorLineErrorLineNumber propriétés contiennent le texte à l’origine de l’exception et le numéro de ligne de ce texte.

Analyse de fichiers avec plusieurs formats

La PeekChars méthode de l’objet TextFieldParser peut être utilisée pour vérifier chaque champ avant de le lire, ce qui vous permet de définir plusieurs formats pour les champs et de réagir en conséquence. Pour plus d’informations, consultez Guide pratique pour lire à partir de fichiers texte avec plusieurs formats.

Voir aussi