Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Deze procedure laat zien hoe u een bestand opent en leest met behulp van de StreamReader klasse, controleert of een bestand wordt geopend, zoekt naar een tekenreeks in een bestand dat is gelezen met een exemplaar van de StreamReader klasse en schrijft naar een bestand met behulp van de StreamWriter klasse.
Opmerking
Mogelijk worden op uw computer verschillende namen of locaties weergegeven voor sommige elementen van de Visual Studio-gebruikersinterface in de volgende instructies. De Visual Studio-editie die u hebt en de instellingen die u gebruikt, bepalen deze elementen. Zie Personalizing the IDEvoor meer informatie.
De toepassing maken
Start Visual Studio en begin het project door een formulier te maken dat de gebruiker kan gebruiken om naar het aangewezen bestand te schrijven.
Het project maken
Selecteer in het menu Bestand de optie Nieuw project.
Klik in het deelvenster Nieuw project op Windows-toepassing.
Typ in het vak
MyDiaryen klik op OK.Visual Studio voegt het project toe aan Solution Explorer en de Windows Forms Designer wordt geopend.
Voeg de besturingselementen in de volgende tabel toe aan het formulier en stel de bijbehorende waarden in voor hun eigenschappen.
| Object | Eigenschappen | Waarde |
|---|---|---|
| Button |
Naam Tekst |
SubmitItem verzenden |
| Button |
Naam Tekst |
ClearInvoer wissen |
| TextBox |
Naam Tekst Meerdere regels |
EntryVoer iets in. False |
Schrijven naar het bestand
Als u de mogelijkheid wilt toevoegen om via de toepassing naar een bestand te schrijven, gebruikt u de StreamWriter klasse. StreamWriter is ontworpen voor tekenuitvoer in een bepaalde codering, terwijl de Stream klasse is ontworpen voor byte-invoer en -uitvoer. Gebruiken StreamWriter voor het schrijven van regels met informatie naar een standaardtekstbestand. Zie voor meer informatie over de StreamWriter klas StreamWriter.
Schrijffunctionaliteit toevoegen
Kies Code in het menu Beeld om de Code-editor te openen.
Omdat de toepassing verwijst naar de System.IO naamruimte, voegt u de volgende instructies toe aan het begin van uw code, voordat de klassedeclaratie voor het formulier begint
Public Class Form1.Imports System.IOVoordat u naar het bestand schrijft, moet u een instance van een StreamWriter class maken.
Kies Designer in het menu Beeld om terug te keren naar de Windows Forms Designer. Dubbelklik op de
Submitknop om een Click gebeurtenis-handler voor de knop te maken en voeg de volgende code toe.Dim fw As StreamWriter
Opmerking
De Visual Studio Integrated Development Environment (IDE) keert terug naar de Code-editor en plaatst de invoegpositie in de gebeurtenishandler waar u de code moet toevoegen.
Als u naar het bestand wilt schrijven, gebruikt u de Write methode van de StreamWriter klasse. Voeg de volgende code direct na
Dim fw As StreamWritertoe. U hoeft zich geen zorgen te maken dat er een uitzondering wordt gegenereerd als het bestand niet wordt gevonden, omdat het wordt gemaakt als het nog niet bestaat.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 TryZorg ervoor dat de gebruiker geen lege vermelding kan indienen door de volgende code direct na
Dim ReadString As Stringtoe te voegen.If (Entry.Text = "" Or Entry.Text = "Please enter something.") Then Entry.Text = "Please enter something." Return End IfOmdat dit een dagboek is, wil de gebruiker een datum toewijzen aan elk item. Voeg de volgende code in nadat
fw = New StreamWriter("C:\MyDiary.txt", True)u de variabeleTodaywilt instellen op de huidige datum.Dim Today As DateTime Today = Now fw.Write(CStr(Today)) fw.Write(ControlChars.CrLf)Voeg ten slotte code toe om de TextBox. Voeg de volgende code toe aan de
Clearknop van de Click gebeurtenis.Entry.Text = ""
Weergavefuncties toevoegen aan het dagboek
In deze sectie voegt u een functie toe waarmee de meest recente vermelding in de DisplayEntryTextBoxsectie wordt weergegeven. U kunt ook een ComboBox item toevoegen waarin verschillende vermeldingen worden weergegeven en waaruit een gebruiker een vermelding kan selecteren die moet worden weergegeven in de DisplayEntryTextBox. Een exemplaar van de StreamReader class leest uit MyDiary.txt. Net als de StreamWriter klasse is StreamReader het bedoeld voor gebruik met tekstbestanden.
Voor deze sectie van het overzicht voegt u de besturingselementen in de volgende tabel toe aan het formulier en stelt u de bijbehorende waarden voor de bijbehorende eigenschappen in.
| Beheersing | Eigenschappen | Waarden |
|---|---|---|
| TextBox |
Naam Zichtbaar grootte Meerdere regels |
DisplayEntryFalse120,60True |
| Button |
Naam Tekst |
Displayweergeven |
| Button |
Naam Tekst |
GetEntriesVermeldingen ophalen |
| ComboBox |
Naam Tekst Ingeschakeld |
PickEntriesEen vermelding selecteren False |
De keuzelijst vullen
Deze
PickEntriesComboBox wordt gebruikt om de datums weer te geven waarop een gebruiker elke vermelding indient, zodat de gebruiker een vermelding van een specifieke datum kan selecteren. Maak een gebeurtenisafhandelaar voor de Click knop en voeg de volgende code toe aan deGetEntriesknop.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 = TrueAls u de code wilt testen, drukt u op F5 om de toepassing te compileren en klikt u vervolgens op Vermeldingen ophalen. Klik op de vervolgkeuzepijl in de ComboBox om de invoerdatums weer te geven.
Afzonderlijke vermeldingen kiezen en weergeven
Maak een Click gebeurtenis-handler voor de
Displayknop en voeg de volgende code toe.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 = ReadStringAls u de code wilt testen, drukt u op F5 om de toepassing te compileren en dient u vervolgens een vermelding in. Klik op Vermeldingen ophalen, selecteer een vermelding in de ComboBoxen klik vervolgens op Weergeven. De inhoud van de geselecteerde vermelding wordt weergegeven in de
DisplayEntryTextBox.
Gebruikers in staat stellen vermeldingen te verwijderen of te wijzigen
Ten slotte kunt u extra functionaliteit toevoegen waarmee gebruikers een vermelding kunnen verwijderen of wijzigen met behulp van DeleteEntry knoppen en EditEntry knoppen. Beide knoppen blijven uitgeschakeld, tenzij er een invoer wordt getoond.
Voeg de besturingselementen in de volgende tabel toe aan het formulier en stel de bijbehorende waarden in voor hun eigenschappen.
| Beheersing | Eigenschappen | Waarden |
|---|---|---|
| Button |
Naam Tekst Ingeschakeld |
DeleteEntryInvoer verwijderen False |
| Button |
Naam Tekst Ingeschakeld |
EditEntryItem bewerken False |
| Button |
Naam Tekst Ingeschakeld |
SubmitEditBewerken verzenden False |
Verwijderen en wijzigen van vermeldingen inschakelen
Voeg de volgende code toe aan het
Display-event van de Click-knop, naDisplayEntry.Text = ReadString.DeleteEntry.enabled = TrueMaak een Click gebeurtenis-handler voor de
DeleteEntryknop en voeg de volgende code toe.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 IfWanneer een gebruiker een vermelding weergeeft, is de
EditEntryknop ingeschakeld. Voeg de volgende code toe aan de Click gebeurtenis van deDisplayknop naDisplayEntry.Text = ReadString.EditEntry.Enabled = TrueMaak een Click gebeurtenis-handler voor de
EditEntryknop en voeg de volgende code toe.Entry.Text = DisplayEntry.Text SubmitEdit.Enabled = TrueMaak een Click gebeurtenis-handler voor de
SubmitEditknop en voeg de volgende code toeDim 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
Druk op F5 om de code te testen om de toepassing te compileren. Klik op Vermeldingen ophalen, selecteer een vermelding en klik vervolgens op Weergeven. De vermelding wordt weergegeven in de DisplayEntryTextBox. Klik op Item bewerken. De vermelding wordt weergegeven in de EntryTextBox. Bewerk de vermelding in het EntryTextBox item en klik op Bewerken verzenden. Open het MyDiary.txt bestand om uw correctie te bevestigen. Selecteer nu een vermelding en klik op Item verwijderen. Wanneer de MessageBox om bevestiging vraagt, klikt u op OK. Sluit de toepassing en open MyDiary.txt om het verwijderen te bevestigen.