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

L’objet TextFieldParser permet d’analyser et de traiter de très gros fichiers structurés sous forme de colonnes de texte à largeur délimitée, tels que les fichiers journaux ou les informations de base de données héritée. Analyser un fichier texte avec TextFieldParser revient à itérer un fichier texte, alors 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 segmenter des chaînes délimitées.

Analyse de fichiers texte de types différents

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

testReader.SetDelimiters(vbTab)

D’autres fichiers texte peuvent avoir des champs de largeur fixe. Dans ce cas, vous devez définir TextFieldType sur FixedWidth et définir la largeur de chaque champ, comme dans l’exemple suivant. Cet exemple utilise la méthode SetFieldWidths pour définir les colonnes de texte : la première colonne a une largeur de 5 caractères, la deuxième de 10 et la troisième de 11 ; la quatrième colonne a une largeur variable.

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

Une fois que vous avez défini le format, vous pouvez parcourir le fichier, à l’aide de la méthode ReadFields, pour traiter les lignes une par une.

Si un champ ne correspond pas au format spécifié, une exception MalformedLineException est levée. Dans ce cas, les propriétés ErrorLine et ErrorLineNumber contiennent le texte à l’origine de l’exception et le numéro de ligne de ce texte.

Analyse de fichiers avec plusieurs formats

La méthode PeekChars 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 de champs ainsi que le comportement approprié. Pour plus d’informations, consultez Guide pratique pour lire des fichiers texte avec plusieurs formats.

Voir aussi