Analyse des fichiers texte avec l'objet TextFieldParser
Mise à jour : Juillet 2008
L'objet TextFieldParser vous 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 sur les bases de données héritées (legacy). Analyser un fichier texte avec le TextFieldParser correspond à parcourir un fichier texte, alors que la méthode d'analyse pour extraire des champs de texte correspond aux méthodes de manipulation des chaînes utilisées pour réinitialiser les chaînes délimitées.
Analyse de différents types de fichiers texte
Les fichiers texte peuvent avoir des champs à largeur différente, délimités par un caractère tel qu'une virgule ou un espace de tabulation. Définissez TextFieldType et le séparateur, 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 largeurs de champ fixes. Dans de tels cas, vous devez affecter le TextFieldType à FixedWidth et définir les largeurs 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, la troisième de 11, tandis que la quatrième a une 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 à l'aide de la méthode ReadFields pour traiter tour à tour chaque ligne.
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 celui-ci.
Analyse de fichiers à plusieurs formats
La méthode PeekChars de l'objet TextFieldParser peut être utilisée pour vérifier chaque champ avant de le lire en vous permettant de définir plusieurs formats pour les champs et de réagir en conséquence. Pour plus d'informations, consultez Comment : lire des fichiers texte avec plusieurs formats dans Visual Basic.
Voir aussi
Tâches
Dépannage des exceptions : Microsoft.VisualBasic.FileIO.TextFieldParser.MalformedLineException
Référence
My.Computer.FileSystem.OpenTextFieldParser, méthode
TextFieldParser.PeekChars, méthode
TextFieldParser.ReadFields, méthode
TextFieldParser.CommentTokens, propriété
TextFieldParser.Delimiters, propriété
TextFieldParser.ErrorLine, propriété
TextFieldParser.ErrorLineNumber, propriété
TextFieldParser.FieldWidths, propriété
TextFieldParser.HasFieldsEnclosedInQuotes, propriété
TextFieldParser.LineNumber, propriété
TextFieldParser.TextFieldType, propriété
TextFieldParser.TrimWhiteSpace, propriété
TextFieldParser.SetDelimiters, méthode
TextFieldParser.SetFieldWidths, méthode
Historique des modifications
Date |
Historique |
Raison |
---|---|---|
Juillet 2008 |
Exemple de code SetFieldWidths mis à jour et commentaires. |
Commentaires client. |