Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de changer d’annuaire.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer d’annuaire.
Cette procédure pas à pas montre comment ouvrir et lire un fichier à l’aide de la StreamReader classe, vérifier si un fichier est accessible, rechercher une chaîne dans un fichier lu avec une instance de la StreamReader classe et écrire dans un fichier à l’aide de la StreamWriter classe.
Remarque
Votre ordinateur peut afficher différents noms ou emplacements pour certains des éléments de l’interface utilisateur Visual Studio dans les instructions suivantes. L’édition Visual Studio que vous avez et les paramètres que vous utilisez déterminent ces éléments. Pour plus d’informations, consultez Personnaliser l’IDE.
Création de l’application
Démarrez Visual Studio et commencez le projet en créant un formulaire que l’utilisateur peut utiliser pour écrire dans le fichier désigné.
Pour créer le projet
Dans le menu Fichier, sélectionnez Nouveau projet.
Dans le volet Nouveau projet , cliquez sur Application Windows.
Dans la zone Nom , tapez
MyDiaryet cliquez sur OK.Visual Studio ajoute le projet à l’Explorateur de solutions et le Concepteur Windows Forms s’ouvre.
Ajoutez les contrôles dans le tableau suivant au formulaire et définissez les valeurs correspondantes pour leurs propriétés.
| Objet | Propriétés | Valeur |
|---|---|---|
| Button |
Nom Texte |
SubmitEntrée d’envoi |
| Button |
Nom Texte |
ClearEffacer l’entrée |
| TextBox |
Nom Texte Multiligne |
EntryEntrez quelque chose. False |
Écriture dans le fichier
Pour ajouter la possibilité d’écrire dans un fichier via l’application, utilisez la StreamWriter classe. StreamWriter est conçu pour la sortie de caractères dans un encodage particulier, tandis que la Stream classe est conçue pour l’entrée et la sortie d’octets. Permet StreamWriter d’écrire des lignes d’informations dans un fichier texte standard. Pour plus d’informations sur la StreamWriter classe, consultez StreamWriter.
Pour ajouter des fonctionnalités d’écriture
Dans le menu Affichage , choisissez Code pour ouvrir l’Éditeur de code.
Étant donné que l’application fait référence à l’espace System.IO de noms, ajoutez les instructions suivantes au début de votre code, avant la déclaration de classe pour le formulaire, qui commence
Public Class Form1.Imports System.IOAvant d’écrire dans le fichier, vous devez créer une instance d’une StreamWriter classe.
Dans le menu Affichage , choisissez Concepteur pour revenir au Concepteur Windows Forms. Double-cliquez sur le
Submitbouton pour créer un gestionnaire d’événements Click pour le bouton, puis ajoutez le code suivant.Dim fw As StreamWriter
Remarque
L’environnement de développement intégré (IDE) Visual Studio retourne à l’Éditeur de code et positionne le point d’insertion dans le gestionnaire d’événements où vous devez ajouter le code.
Pour écrire dans le fichier, utilisez la Write méthode de la StreamWriter classe. Ajoutez le code suivant directement après
Dim fw As StreamWriter. Vous n’avez pas besoin de vous soucier qu’une exception sera levée si le fichier est introuvable, car il sera créé s’il n’existe pas déjà.Dim ReadString As String Try 'Pass the file path and name to the StreamWriter constructor. 'Indicate that Append is True, so file will not be overwritten. fw = New StreamWriter("C:\MyDiary.txt", True) ReadString = Entry.Text fw.WriteLine(ReadString) Finally 'Close the file. fw.Close() End TryAssurez-vous que l’utilisateur ne peut pas envoyer une entrée vide en ajoutant le code suivant directement après
Dim ReadString As String.If (Entry.Text = "" Or Entry.Text = "Please enter something.") Then Entry.Text = "Please enter something." Return End IfÉtant donné qu’il s’agit d’un journal, l’utilisateur souhaite attribuer une date à chaque entrée. Insérez le code suivant après
fw = New StreamWriter("C:\MyDiary.txt", True)pour définir la variableTodaysur la date actuelle.Dim Today As DateTime Today = Now fw.Write(CStr(Today)) fw.Write(ControlChars.CrLf)Enfin, attachez du code pour effacer le TextBox. Ajoutez le code suivant à l’événement
Cleardu Click bouton.Entry.Text = ""
Ajout de fonctionnalités d’affichage au journal
Dans cette section, vous ajoutez une fonctionnalité qui affiche la dernière entrée dans le DisplayEntryTextBox. Vous pouvez également ajouter un ComboBox qui affiche différentes entrées et à partir de laquelle un utilisateur peut sélectionner une entrée à afficher dans le DisplayEntryTextBox. Instance de la StreamReader classe lue à partir de MyDiary.txt. Comme la StreamWriter classe, StreamReader elle est destinée à être utilisée avec des fichiers texte.
Pour cette section de la procédure pas à pas, ajoutez les contrôles dans le tableau suivant au formulaire et définissez les valeurs correspondantes pour leurs propriétés.
| Contrôle | Propriétés | Valeurs |
|---|---|---|
| TextBox |
Nom visible Taille Multiligne |
DisplayEntryFalse120,60True |
| Button |
Nom Texte |
DisplayÉcran |
| Button |
Nom Texte |
GetEntriesObtenir des entrées |
| ComboBox |
Nom Texte Activé |
PickEntriesSélectionner une entrée False |
Pour remplir la zone de liste déroulante
Il
PickEntriesComboBox est utilisé pour afficher les dates auxquelles un utilisateur envoie chaque entrée, afin que l’utilisateur puisse sélectionner une entrée à partir d’une date spécifique. Créez un gestionnaire d’événements Click sur leGetEntriesbouton et ajoutez le code suivant.Dim fr As StreamReader = Nothing Dim FileString As String FileString = "" Try fr = New System.IO.StreamReader("C:\MyDiary.txt") PickEntries.Items.Clear() PickEntries.Enabled = True Do FileString = fr.ReadLine If IsDate(FileString) Then PickEntries.Items.Add(FileString) End If Loop Until (FileString Is Nothing) Finally If fr IsNot Nothing Then fr.Close() End If End Try PickEntries.Enabled = TruePour tester votre code, appuyez sur F5 pour compiler l’application, puis cliquez sur Obtenir des entrées. Cliquez sur la flèche déroulante dans la ComboBox liste déroulante pour afficher les dates d’entrée.
Pour choisir et afficher des entrées individuelles
Créez un gestionnaire d’événements Click pour le
Displaybouton et ajoutez le code suivant.Dim fr As StreamReader Dim ReadString As String 'Make sure ReadString begins empty. ReadString = "" Dim FileString As String fr = New StreamReader("C:\MyDiary.txt") 'If no entry has been selected, show the whole file. If PickEntries.Enabled = False Or PickEntries.SelectedText Is Nothing Then Do 'Read a line from the file into FileString. FileString = fr.ReadLine 'add it to ReadString ReadString = ReadString & ControlChars.CrLf & FileString Loop Until (FileString = Nothing) Else 'An entry has been selected, find the line that matches. Do FileString = fr.ReadLine Loop Until FileString = CStr(PickEntries.SelectedItem) FileString = CStr(PickEntries.SelectedItem) & ControlChars.CrLf ReadString = FileString & fr.ReadLine 'Read from the file until EOF or another Date is found. Do Until ((fr.Peek < 0) Or (IsDate(fr.ReadLine))) ReadString = ReadString & fr.ReadLine Loop End If fr.Close() DisplayEntry.Visible = True DisplayEntry.Text = ReadStringPour tester votre code, appuyez sur F5 pour compiler l’application, puis envoyez une entrée. Cliquez sur Obtenir des entrées, sélectionnez une entrée à partir de l’écran ComboBox, puis cliquez sur Afficher. Le contenu de l’entrée sélectionnée apparaît dans le
DisplayEntryTextBox.
Activation des utilisateurs pour supprimer ou modifier des entrées
Enfin, vous pouvez inclure des fonctionnalités supplémentaires permettant aux utilisateurs de supprimer ou de modifier une entrée à l’aide DeleteEntry et EditEntry aux boutons. Les deux boutons restent désactivés, sauf si une entrée est affichée.
Ajoutez les contrôles dans le tableau suivant au formulaire et définissez les valeurs correspondantes pour leurs propriétés.
| Contrôle | Propriétés | Valeurs |
|---|---|---|
| Button |
Nom Texte Activé |
DeleteEntrySupprimer l’entrée False |
| Button |
Nom Texte Activé |
EditEntryModifier l’entrée False |
| Button |
Nom Texte Activé |
SubmitEditEnvoyer la modification False |
Pour activer la suppression et la modification des entrées
Ajoutez le code suivant à l’événement
Displaydu Click bouton, aprèsDisplayEntry.Text = ReadString.DeleteEntry.enabled = TrueCréez un gestionnaire d’événements Click pour le
DeleteEntrybouton et ajoutez le code suivant.Dim fr As StreamReader Dim ReadString As String Dim WriteString As String Dim ConfirmDelete As MsgBoxResult fr = New StreamReader("C:\MyDiary.txt") ReadString = fr.ReadLine ' Read through the textfile Do Until (fr.Peek < 0) ReadString = ReadString & vbCrLf & fr.ReadLine Loop WriteString = Replace(ReadString, DisplayEntry.Text, "") fr.Close() ' Check to make sure the user wishes to delete the entry ConfirmDelete = MsgBox("Do you really wish to delete this entry?", MsgBoxStyle.OKCancel) If ConfirmDelete = MsgBoxResult.OK Then File.Delete("C:\MyDiary.txt") Dim fw As StreamWriter = File.CreateText("C:\MyDiary.txt") fw.WriteLine(WriteString) fw.Close() ' Reset controls on the form DisplayEntry.Text = "" PickEntries.Text = "" PickEntries.Items.Clear() PickEntries.Enabled = False DeleteEntry.Enabled = False End IfLorsqu’un utilisateur affiche une entrée, le
EditEntrybouton devient activé. Ajoutez le code suivant à l’événement ClickDisplaydu bouton aprèsDisplayEntry.Text = ReadString.EditEntry.Enabled = TrueCréez un gestionnaire d’événements Click pour le
EditEntrybouton et ajoutez le code suivant.Entry.Text = DisplayEntry.Text SubmitEdit.Enabled = TrueCréer un gestionnaire d’événements Click pour le
SubmitEditbouton et ajouter le code suivantDim fr As StreamReader Dim ReadString As String Dim WriteString As String If Entry.Text = "" Then MsgBox("Use Delete to Delete an Entry") Return End If fr = New StreamReader("C:\MyDiary.txt") ReadString = fr.ReadLine Do Until (fr.Peek < 0) ReadString = ReadString & vbCrLf & fr.ReadLine Loop WriteString = Replace(ReadString, DisplayEntry.Text, Entry.Text) fr.Close() File.Delete("C:\MyDiary.txt") Dim fw As StreamWriter = File.CreateText("C:\MyDiary.txt") fw.WriteLine(WriteString) fw.Close() DisplayEntry.Text = Entry.Text Entry.Text = "" EditEntry.Enabled = False SubmitEdit.Enabled = False
Pour tester votre code, appuyez sur F5 pour compiler l’application. Cliquez sur Obtenir des entrées, sélectionnez une entrée, puis cliquez sur Afficher. L’entrée apparaît dans le DisplayEntryTextBox. Cliquez sur Modifier l’entrée. L’entrée apparaît dans le EntryTextBox. Modifiez l’entrée dans l’entrée EntryTextBox , puis cliquez sur Envoyer la modification. Ouvrez le MyDiary.txt fichier pour confirmer votre correction. Sélectionnez maintenant une entrée, puis cliquez sur Supprimer l’entrée. Lorsque les MessageBox demandes sont confirmées, cliquez sur OK. Fermez l’application et ouvrez-la MyDiary.txt pour confirmer la suppression.