Partager via


Guide pratique pour lire des fichiers texte en Visual Basic

La ReadAllText méthode de l’objet My.Computer.FileSystem vous permet de lire à partir d’un fichier texte. L’encodage de fichier peut être spécifié si le contenu du fichier utilise un encodage tel que ASCII ou UTF-8.

Si vous lisez à partir d’un fichier avec des caractères étendus, vous devez spécifier l’encodage de fichier.

Remarque

Pour lire un fichier une seule ligne de texte à la fois, utilisez la OpenTextFileReader méthode de l’objet My.Computer.FileSystem . La méthode OpenTextFileReader retourne un objet StreamReader. Vous pouvez utiliser la ReadLine méthode de l’objet StreamReader pour lire un fichier d’une ligne à la fois. Vous pouvez tester la fin du fichier à l’aide de la EndOfStream méthode de l’objet StreamReader .

Pour lire à partir d’un fichier texte

Utilisez la ReadAllText méthode de l’objet My.Computer.FileSystem pour lire le contenu d’un fichier texte dans une chaîne, en fournissant le chemin d’accès. L’exemple suivant lit le contenu de test.txt dans une chaîne, puis l’affiche dans une boîte de message.

Dim fileReader As String
fileReader = My.Computer.FileSystem.ReadAllText("test.txt")
MsgBox(fileReader)

Pour lire à partir d’un fichier texte encodé

Utilisez la ReadAllText méthode de l’objet My.Computer.FileSystem pour lire le contenu d’un fichier texte dans une chaîne, en fournissant le chemin d’accès et le type d’encodage de fichier. L’exemple suivant lit le contenu du fichier UTF32 test.txt dans une chaîne, puis l’affiche dans une boîte de message.

Dim fileReader As String
fileReader = My.Computer.FileSystem.ReadAllText("test.txt",
   System.Text.Encoding.UTF32)
MsgBox(fileReader)

Pour lire à partir d’un fichier texte dans un contrôle RichTextBox

Pour charger le contenu d’un fichier texte directement dans un contrôle RichTextBox, lisez le contenu du fichier dans une chaîne et affectez-le à la Text propriété de RichTextBox. L’exemple suivant montre comment lire un fichier texte et le charger dans un contrôle RichTextBox.

' Load text file into a RichTextBox control
' Note: This assumes RichTextBox1 is a control on your form
Dim fileText As String
fileText = My.Computer.FileSystem.ReadAllText("test.txt")
' RichTextBox1.Text = fileText

Pour une meilleure gestion des erreurs et la gestion des chemins d’accès aux fichiers, vous pouvez utiliser l’approche suivante qui construit un chemin d’accès de fichier approprié et gère les exceptions potentielles. Cette approche évite les chemins de lecteur codés en dur qui peuvent provoquer des problèmes sur différents systèmes :

' Load text file into a RichTextBox control using a specific path
Try
    Dim filePath As String = System.IO.Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, "test.txt")
    Dim fileText As String = My.Computer.FileSystem.ReadAllText(filePath)
    ' RichTextBox1.Text = fileText
Catch ex As System.IO.FileNotFoundException
    MsgBox("File not found: " & ex.Message)
Catch ex As Exception
    MsgBox("Error reading file: " & ex.Message)
End Try

Remarque

Lorsque vous spécifiez des chemins de fichier, évitez d’utiliser des chemins absolus codés en dur comme «C:\temp\file.txt», car cela peut entraîner des problèmes sur les systèmes où la lettre de lecteur ou la structure du répertoire est différente. Utilisez plutôt des chemins d’accès relatifs ou construisez des chemins d’accès Combine pour vous assurer que votre code fonctionne dans différents environnements.

Programmation robuste

Les conditions suivantes peuvent entraîner une exception :

  • Le chemin d’accès n’est pas valide pour l’une des raisons suivantes : il s’agit d’une chaîne de longueur nulle, il contient uniquement des espaces blancs, il contient des caractères non valides ou il s’agit d’un chemin d’accès d’appareil (ArgumentException).

  • Le chemin d’accès n’est pas valide, car il est Nothing (ArgumentNullException).

  • Le fichier n’existe pas (FileNotFoundException).

  • Le fichier est utilisé par un autre processus ou une erreur d’E/S se produit (IOException).

  • Le chemin dépasse la longueur maximale définie par le système (PathTooLongException).

  • Un nom de fichier ou de répertoire dans le chemin contient un signe deux-points (:) ou est dans un format non valide (NotSupportedException).

  • Il n’y a pas suffisamment de mémoire pour écrire la chaîne dans la mémoire tampon (OutOfMemoryException).

  • L’utilisateur ne dispose pas des autorisations nécessaires pour afficher le chemin d’accès (SecurityException).

Ne prenez pas de décisions sur le contenu du fichier en fonction du nom du fichier. Par exemple, le fichier Form1.vb peut ne pas être un fichier source Visual Basic.

Vérifiez toutes les entrées avant d’utiliser les données dans votre application. Le contenu du fichier peut ne pas être ce qui est attendu, et les méthodes à lire à partir du fichier peuvent échouer.

Voir aussi