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, objet

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.