Lecture d'un fichier texte
Mise à jour : novembre 2007
Dans cette leçon, vous apprendrez à lire un fichier texte dans Visual Basic à l'aide de l'objet My.Computer.FileSystem (voir My.Computer.FileSystem, objet).
La leçon précédente, Écriture dans un fichier texte, décrit comment ajouter à l'application Visionneuse d'images une fonctionnalité qui permet d'enregistrer les noms de vos images favorites dans un fichier texte. L'étape suivante est la lecture de ce fichier texte. Cela vous permet d'afficher uniquement vos images favorites.
Concepts de base des fichiers
Avant de lire un fichier texte, vous devez savoir certaines choses. L'objet My dans Visual Basic facilite l'utilisation de fichiers. Vous pouvez lire des fichiers sur un ordinateur à l'aide de la méthode My.Computer.FileSystem.ReadAllText (voir My.Computer.FileSystem.ReadAllText, méthode) de l'objet My.Computer.FileSystem (voir My.Computer.FileSystem, objet).
Les fichiers texte qui contiennent des chaînes séparés par des virgules sont connus sous le nom de fichiers texte délimités par des virgules. Chaque élément du fichier texte est appelé champ. Si vous souhaitez lire le contenu d'un fichier texte délimité par des virgules, vous pouvez utiliser la méthode My.Computer.FileSystem.OpenTextFieldParser (voir My.Computer.FileSystem.OpenTextFieldParser, méthode).
Dans cette procédure, vous vérifierez que le fichier texte de favoris existe dans le dossier Documents avant de tenter de le charger. L'application affichera un message aux utilisateurs si le fichier n'existe pas.
Remarque : |
---|
Il existe dans Windows XP des dossiers spéciaux nommés MyDocuments, MyPictures et MyMusic. Dans Windows Vista, le nom de ces dossiers ne comporte pas « My » ; à la place, ils sont nommés Documents, Pictures et Music. Toutefois, le code de cette leçon s'exécutera sur Windows XP et Windows Vista. |
Essayez !
Pour lire un fichier texte délimité par des virgules
Ouvrez le projet Visionneuse d'images de la leçon précédente. Si vous ne l'avez pas encore terminée, allez à Écriture dans un fichier texte et terminez cette leçon avant de poursuivre.
Dans l'Explorateur de solutions, cliquez sur Form1.vb, puis dans le menu Affichage, cliquez sur Concepteur.
Ajoutez un contrôle Button au formulaire, à côté du bouton Ajouter aux Favoris.
Modifiez les propriétés suivantes de ce bouton :
Propriété
Valeur
Nom
LoadFavorites
Texte
Charger les favoris
Taille
85, 23
Double-cliquez sur le nouveau contrôle Button pour ajouter le gestionnaire d'événements par défaut dans l'éditeur de code.
Dans le gestionnaire d'événements LoadFavorites_Click, ajoutez le code suivant pour effacer le contenu de la zone de liste et de la zone d'image. Si vous n'effacez pas d'abord la zone de liste, le chemin d'accès au fichier et son nom seront ajoutés à la liste à chaque fois que vous cliquerez sur le bouton Charger les favoris.
' Clear the picture box and the list box. Me.ListBox1.Items.Clear() Me.PictureBox1.ImageLocation = ""
Ajoutez l'instruction If suivante pour vérifier si le fichier texte FavoritePictures existe. Dans le cas contraire, informez l'utilisateur que le fichier n'existe pas.
Dim FavoritePictures As String = _ My.Computer.FileSystem.SpecialDirectories.MyDocuments _ & "\FavoritePictures.txt" If My.Computer.FileSystem.FileExists(FavoritePictures) Then ' Add code to read text from a file. Else MsgBox("There is no favorites file yet. Click Load" _ & " Pictures," & vbCrLf & "select a picture, and" _ & " then click Add to Favorites.", MsgBoxStyle.OkOnly, _ "Picture Viewer") End If
Remplacez le commentaire entre l'instruction If et l'instruction Else par le code suivant. Ce code utilise la méthode OpenTextFieldParser pour lire le contenu du fichier FavoritePictures.txt. Il indique alors que le séparateur de texte est une virgule.
' Open the FavoritePictures text file by using ' OpenTextFieldParser. Dim MyReader As Microsoft.VisualBasic.FileIO.TextFieldParser MyReader = My.Computer.FileSystem.OpenTextFieldParser( _ FavoritePictures) MyReader.SetDelimiters(",")
Ajoutez le code suivant sous le code que vous avez ajouté à l'étape précédente. Ce code fait une boucle à travers les champs du fichier texte puis vérifie l'existence de chaque fichier avant de l'ajouter au contrôle ListBox. Il ferme ensuite le TextFieldParser.
' Using a comma (,) as a delimeter, parse each field in ' the text file and add it to the list box. Dim textFields As String() = MyReader.ReadFields() For Each currentField As String In textFields If My.Computer.FileSystem.FileExists(currentField) Then Me.ListBox1.Items.Add(currentField) End If Next ' Close the TextFieldParser. MyReader.Close()
Appuyez sur F5 pour exécuter le code.
Cliquez sur le bouton Charger les favoris pour charger les fichiers répertoriés dans le fichier FavoritePictures.txt.
Cliquez sur un élément de la zone de liste pour afficher l'image dans la Visionneuse d'images.
Étapes suivantes
Dans cette leçon, vous avez appris à lire un fichier texte délimité par des virgules et à ajouter chaque élément du fichier à une liste. Dans la leçon suivante, vous apprendrez à supprimer le fichier texte de favoris du dossier Documents.
Leçon suivante : Suppression d'un fichier texte
Voir aussi
Tâches
Récupération des noms des fichiers dans un dossier
Écriture dans un fichier texte
Autres ressources
Utilisation du système de fichiers : écriture et lecture des fichiers