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.