Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
L’objet TextFieldParser permet d’analyser facilement et efficacement les fichiers texte structurés, tels que les journaux d’activité.
La TextFieldType propriété définit si le fichier analysé est un fichier délimité ou un fichier avec des champs de largeur fixe de texte. Dans un fichier texte de largeur fixe, le champ à la fin peut avoir une largeur variable. Pour spécifier que le champ à la fin a une largeur variable, définissez-le pour avoir une largeur inférieure ou égale à zéro.
Pour analyser un fichier texte à largeur fixe
Créez un élément
TextFieldParser. Le code suivant crée leTextFieldParsernomReaderet ouvre le fichiertest.log.Using Reader As New Microsoft.VisualBasic. FileIO.TextFieldParser("C:\TestFolder\test.log")Définissez la
TextFieldTypepropriété en tant queFixedWidth, définissant la largeur et le format. Le code suivant définit les colonnes de texte ; le premier est de 5 caractères larges, le deuxième 10, le troisième 11 et le quatrième est de largeur variable.Reader.TextFieldType = Microsoft.VisualBasic.FileIO.FieldType.FixedWidth Reader.SetFieldWidths(5, 10, 11, -1)Effectuez une boucle dans les champs du fichier. Si des lignes sont endommagées, signalez une erreur et poursuivez l’analyse.
Dim currentRow As String() While Not Reader.EndOfData Try currentRow = Reader.ReadFields() Dim currentField As String For Each currentField In currentRow MsgBox(currentField) Next Catch ex As Microsoft.VisualBasic. FileIO.MalformedLineException MsgBox("Line " & ex.Message & "is not valid and will be skipped.") End TryFermez les
WhileblocsUsingavecEnd WhileetEnd Using.End While End Using
Exemple :
Cet exemple lit à partir du fichier test.log.
Using Reader As New Microsoft.VisualBasic.FileIO.
TextFieldParser("C:\TestFolder\test.log")
Reader.TextFieldType =
Microsoft.VisualBasic.FileIO.FieldType.FixedWidth
Reader.SetFieldWidths(5, 10, 11, -1)
Dim currentRow As String()
While Not Reader.EndOfData
Try
currentRow = Reader.ReadFields()
Dim currentField As String
For Each currentField In currentRow
MsgBox(currentField)
Next
Catch ex As Microsoft.VisualBasic.FileIO.MalformedLineException
MsgBox("Line " & ex.Message &
"is not valid and will be skipped.")
End Try
End While
End Using
Programmation fiable
Les conditions suivantes peuvent entraîner une exception :
Une ligne ne peut pas être analysée à l’aide du format spécifié (MalformedLineException). Le message d’exception spécifie la ligne à l’origine de l’exception, tandis que la ErrorLine propriété est affectée au texte contenu dans la ligne.
Le fichier spécifié n’existe pas (FileNotFoundException).
Situation de confiance partielle dans laquelle l’utilisateur ne dispose pas des autorisations suffisantes pour accéder au fichier. (SecurityException).
Le chemin d’accès est trop long (PathTooLongException).
L’utilisateur ne dispose pas des autorisations suffisantes pour accéder au fichier (UnauthorizedAccessException).
Voir aussi
- Microsoft.VisualBasic.FileIO.TextFieldParser
- Comment lire à partir de fichiers texte Comma-Delimited
- Guide pratique pour lire des fichiers texte avec plusieurs formats
- Analyse de fichiers texte avec l’objet TextFieldParser
- Procédure pas à pas : manipulation de fichiers et de répertoires en Visual Basic
- Résolution des problèmes : lecture et écriture dans des fichiers texte