Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez az útmutató bemutatja, hogyan nyithat meg és olvashat be egy fájlt az StreamReader osztály használatával, ellenőrizheti, hogy van-e hozzáférése egy fájlhoz, kereshet egy sztringet az osztály egy példányával StreamReader olvasott fájlban, és hogyan írhat egy fájlba az StreamWriter osztály használatával.
Megjegyzés:
Előfordulhat, hogy a számítógép különböző neveket vagy helyeket jelenít meg a Visual Studio felhasználói felületének egyes elemeihez az alábbi utasításokban. Ezeket az elemeket a Visual Studio-kiadás és a használt beállítások határozzák meg. További információért lásd: A fejlesztői környezet személyre szabása.
Az alkalmazás létrehozása
Indítsa el a Visual Studiót, és kezdje el a projektet egy űrlap létrehozásával, amellyel a felhasználó írhat a kijelölt fájlba.
A projekt létrehozása
A Fájl menüben válassza Új projektlehetőséget.
Az Új projekt panelen kattintson a Windows-alkalmazás elemre.
A Név mezőbe írja
MyDiarybe, és kattintson az OK gombra.A Visual Studio hozzáadja a projektet a Megoldáskezelőhöz, és megnyílik a Windows Forms Designer .
Adja hozzá az alábbi táblázatban szereplő vezérlőket az űrlaphoz, és állítsa be a tulajdonságok megfelelő értékeit.
| Objektum | Tulajdonságok | Érték |
|---|---|---|
| Button |
Név Szöveg |
SubmitBejegyzés elküldése |
| Button |
Név Szöveg |
ClearBejegyzés törlése |
| TextBox |
Név Szöveg többsoros |
EntryÍrjon be valamit. False |
Írás a fájlba
Az alkalmazásban a fájlírási képesség hozzáadásához használja a StreamWriter osztályt. StreamWriter karakterkimenetre lett tervezve egy adott kódolásban, míg az Stream osztály bájtos bemenetre és kimenetre lett tervezve. Információsorok szabványos szövegfájlba írásához használható StreamWriter . További információ az StreamWriter osztályról: StreamWriter.
Írási funkció hozzáadása
A Nézet menüben válassza a Kód elemet a Kódszerkesztő megnyitásához.
Mivel az alkalmazás a System.IO névtérre hivatkozik, adja hozzá a következő utasításokat a kód elején, az űrlap osztálydeklarációja előtt, amely megkezdődik
Public Class Form1.Imports System.IOMielőtt a fájlba írna, létre kell hoznia a(z) StreamWriter osztály példányát.
A Nézetmenüben válassza a Tervező lehetőséget a Windows Forms Designerhez való visszatéréshez. A gombra duplán kattintva
Submithozzon létre egy Click eseménykezelőt a gombhoz, majd adja hozzá a következő kódot.Dim fw As StreamWriter
Megjegyzés:
A Visual Studio integrált fejlesztési környezet (IDE) visszatér a Kódszerkesztőbe, és elhelyezi a beszúrási pontot az eseménykezelőben, ahol hozzá kell adnia a kódot.
A fájlba való íráshoz használja az Write osztály metódusát StreamWriter . Közvetlenül utána adja hozzá a következő kódot
Dim fw As StreamWriter. Nem kell aggódnia amiatt, hogy kivételt dob, ha a fájl nem található, mert létrehozzák, ha még nem létezik.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 TryGyőződjön meg arról, hogy a felhasználó nem tud üres bejegyzést küldeni, ha közvetlenül
Dim ReadString As Stringutána adja hozzá a következő kódot.If (Entry.Text = "" Or Entry.Text = "Please enter something.") Then Entry.Text = "Please enter something." Return End IfMivel ez egy napló, a felhasználó minden bejegyzéshez dátumot szeretne hozzárendelni. Szúrja be a következő kódot
fw = New StreamWriter("C:\MyDiary.txt", True)után, hogy a változótTodayaz aktuális dátumra állítsa be.Dim Today As DateTime Today = Now fw.Write(CStr(Today)) fw.Write(ControlChars.CrLf)Végül csatolja a kódot a TextBoxtörléshez. Adja hozzá a következő kódot a
Cleargomb eseményéhez Click .Entry.Text = ""
Megjelenítési funkciók hozzáadása a naplóhoz
Ebben a szakaszban egy olyan funkciót ad hozzá, amely a legújabb bejegyzést jeleníti meg a DisplayEntryTextBox. Hozzáadhat olyan bejegyzést ComboBox is, amely különböző bejegyzéseket jelenít meg, és amelyek közül a felhasználó kiválaszthat egy megjelenítendő bejegyzést.DisplayEntryTextBox Az StreamReader osztály példánya MyDiary.txt-ból/-ből olvas. A(z) StreamWriter osztályhoz hasonlóan a StreamReader is szövegfájlokhoz való használatra készült.
Az útmutató ezen szakaszában adja hozzá az alábbi táblázatban szereplő vezérlőket az űrlaphoz, és állítsa be a tulajdonságok megfelelő értékeit.
| Vezérlő | Tulajdonságok | Értékek |
|---|---|---|
| TextBox |
Név Látható Méret többsoros |
DisplayEntryFalse120,60True |
| Button |
Név Szöveg |
DisplayKijelző |
| Button |
Név Szöveg |
GetEntriesBejegyzések lekérése |
| ComboBox |
Név Szöveg Engedélyezett |
PickEntriesEgy bejegyzés kiválasztása False |
A kombinált lista feltöltése
A
PickEntriesComboBox rendszer megjeleníti azokat a dátumokat, amelyeken a felhasználó elküldi az egyes bejegyzéseket, így a felhasználó kiválaszthat egy bejegyzést egy adott dátumból. Hozzon létre egy eseménykezelőt Click aGetEntriesgombhoz, és adja hozzá a következő kódot.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 = TrueA kód teszteléséhez nyomja le az F5 billentyűt az alkalmazás fordításához, majd kattintson a Bejegyzések lekérése gombra. A beviteli dátumok megjelenítéséhez kattintson a ComboBox legördülő nyílra.
Egyéni bejegyzések kiválasztása és megjelenítése
Hozzon létre egy Click eseménykezelőt a
Displaygombhoz, és adja hozzá a következő kódot.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 = ReadStringA kód teszteléséhez nyomja le az F5 billentyűt az alkalmazás fordításához, majd küldjön be egy bejegyzést. Kattintson a Bejegyzések lekérése gombra, jelöljön ki egy bejegyzést a listában, majd kattintson a ComboBoxMegjelenítés gombra. A kijelölt bejegyzés tartalma megjelenik a
DisplayEntryTextBox.
Bejegyzések törlésének vagy módosításának engedélyezése a felhasználók számára
Végül további funkciókat is megadhat, amelyek lehetővé teszik a felhasználók számára a bejegyzés törlését vagy módosítását a DeleteEntry és EditEntry gombokkal. Mindkét gomb le van tiltva, hacsak nem jelenik meg bejegyzés.
Adja hozzá az alábbi táblázatban szereplő vezérlőket az űrlaphoz, és állítsa be a tulajdonságok megfelelő értékeit.
| Vezérlő | Tulajdonságok | Értékek |
|---|---|---|
| Button |
Név Szöveg Engedélyezett |
DeleteEntryBejegyzés törlése False |
| Button |
Név Szöveg Engedélyezett |
EditEntryBejegyzés szerkesztése False |
| Button |
Név Szöveg Engedélyezett |
SubmitEditSzerkesztés elküldése False |
Bejegyzések törlésének és módosításának engedélyezése
Adja hozzá a következő kódot a
Displaygomb Click eseményéhez, közvetlenülDisplayEntry.Text = ReadStringután.DeleteEntry.enabled = TrueHozzon létre egy Click eseménykezelőt a
DeleteEntrygombhoz, és adja hozzá a következő kódot.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 IfAmikor egy felhasználó megjelenít egy bejegyzést, a
EditEntrygomb engedélyezve lesz. Adja hozzá a következő kódot a Click eseményéhez aDisplaygombon, aDisplayEntry.Text = ReadStringután.EditEntry.Enabled = TrueHozzon létre egy Click eseménykezelőt a
EditEntrygombhoz, és adja hozzá a következő kódot.Entry.Text = DisplayEntry.Text SubmitEdit.Enabled = TrueHozzon létre egy Click eseménykezelőt a
SubmitEditgombhoz, és adja hozzá a következő kódotDim 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
A kód teszteléséhez nyomja le az F5 billentyűt az alkalmazás fordításához. Kattintson a Bejegyzések lekérése gombra, jelöljön ki egy bejegyzést, majd kattintson a Megjelenítés gombra. A bejegyzés megjelenik a DisplayEntryTextBox. Kattintson a Bejegyzés szerkesztése gombra. A bejegyzés megjelenik a EntryTextBox. Szerkessze a bejegyzést a fájlban, és kattintson a EntryTextBoxSzerkesztés elküldése gombra. Nyissa meg a fájlt a MyDiary.txt javítás megerősítéséhez. Most jelöljön ki egy bejegyzést, és kattintson a Bejegyzés törlése gombra. Amikor a MessageBox megerősítést kér, kattintson az OK gombra. Zárja be az alkalmazást, és nyissa meg MyDiary.txt a törlés megerősítéséhez.