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

  1. 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.

  2. Dans l'Explorateur de solutions, cliquez sur Form1.vb, puis dans le menu Affichage, cliquez sur Concepteur.

  3. Ajoutez un contrôle Button au formulaire, à côté du bouton Ajouter aux Favoris.

  4. Modifiez les propriétés suivantes de ce bouton :

    Propriété

    Valeur

    Nom

    LoadFavorites

    Texte

    Charger les favoris

    Taille

    85, 23

  5. Double-cliquez sur le nouveau contrôle Button pour ajouter le gestionnaire d'événements par défaut dans l'éditeur de code.

  6. 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 = ""
    
  7. 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
    
  8. 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(",")
    
  9. 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()
    
  10. Appuyez sur F5 pour exécuter le code.

  11. Cliquez sur le bouton Charger les favoris pour charger les fichiers répertoriés dans le fichier FavoritePictures.txt.

  12. 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

Visite guidée de Visual Basic