Megosztás a következőn keresztül:


Útmutató: Fájlok manipulálása .NET-keretrendszer metódusokkal (Visual Basic)

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

  1. A Fájl menüben válassza Új projektlehetőséget.

  2. Az Új projekt panelen kattintson a Windows-alkalmazás elemre.

  3. A Név mezőbe írja MyDiary be, és kattintson az OK gombra.

    A Visual Studio hozzáadja a projektet a Megoldáskezelőhöz, és megnyílik a Windows Forms Designer .

  4. 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
Submit

Bejegyzés elküldése
Button Név

Szöveg
Clear

Bejegyzé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

  1. A Nézet menüben válassza a Kód elemet a Kódszerkesztő megnyitásához.

  2. 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.IO
    

    Mielőtt a fájlba írna, létre kell hoznia a(z) StreamWriter osztály példányát.

  3. A Nézetmenüben válassza a Tervező lehetőséget a Windows Forms Designerhez való visszatéréshez. A gombra duplán kattintva Submit hozzon 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.

  1. 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 Try
    
  2. Győ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 If
    
  3. Mivel 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ót Today az aktuális dátumra állítsa be.

    Dim Today As DateTime
    Today = Now
    fw.Write(CStr(Today))
    fw.Write(ControlChars.CrLf)
    
  4. Végül csatolja a kódot a TextBoxtörléshez. Adja hozzá a következő kódot a Clear gomb 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
DisplayEntry

False

120,60

True
Button Név

Szöveg
Display

Kijelző
Button Név

Szöveg
GetEntries

Bejegyzések lekérése
ComboBox Név

Szöveg

Engedélyezett
PickEntries

Egy bejegyzés kiválasztása

False

A kombinált lista feltöltése

  1. 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 a GetEntries gombhoz, é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 = True
    
  2. A 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

  1. Hozzon létre egy Click eseménykezelőt a Display gombhoz, é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 = ReadString
    
  2. A 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
DeleteEntry

Bejegyzés törlése

False
Button Név

Szöveg

Engedélyezett
EditEntry

Bejegyzés szerkesztése

False
Button Név

Szöveg

Engedélyezett
SubmitEdit

Szerkesztés elküldése

False

Bejegyzések törlésének és módosításának engedélyezése

  1. Adja hozzá a következő kódot a Display gomb Click eseményéhez, közvetlenül DisplayEntry.Text = ReadString után.

    DeleteEntry.enabled = True
    
  2. Hozzon létre egy Click eseménykezelőt a DeleteEntry gombhoz, é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 If
    
  3. Amikor egy felhasználó megjelenít egy bejegyzést, a EditEntry gomb engedélyezve lesz. Adja hozzá a következő kódot a Click eseményéhez a Display gombon, a DisplayEntry.Text = ReadString után.

    EditEntry.Enabled = True
    
  4. Hozzon létre egy Click eseménykezelőt a EditEntry gombhoz, és adja hozzá a következő kódot.

    Entry.Text = DisplayEntry.Text
    SubmitEdit.Enabled = True
    
  5. Hozzon létre egy Click eseménykezelőt a SubmitEdit gombhoz, és adja hozzá a következő kódot

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

Lásd még