Wskazówki: manipulowanie plikami za pomocą metod .NET Framework (Visual Basic)

W tym instruktażu demonstruje, jak otwierać i odczytywać przy użyciu pliku StreamReader klasy, sprawdź, jeśli plik jest dostępny, wyszukaj ciąg w pliku, odczytać z instancji StreamReader klasy i zapisu do pliku za pomocą StreamWriter klasy.

[!UWAGA]

Na komputerze w poniższych instrukcjach mogą być wyświetlane inne nazwy i lokalizacje niektórych elementów interfejsu użytkownika programu Visual Studio. Te elementy są określane przez numer wersji Visual Studio oraz twoje ustawienia. Aby uzyskać więcej informacji, zobacz Dostosowywanie ustawień środowiska deweloperskiego w Visual Studio.

Tworzenie aplikacji

Uruchom Visual Studio i rozpoczęcia projektu, tworząc formularz, który użytkownik może użyć do zapisu do wskazanego pliku.

Aby utworzyć projekt

  1. Na pliku menu, wybierz opcję Nowy projekt.

  2. W Nowy projekt okienka, kliknij Aplikacji Windows.

  3. W Nazwa pole typu MyDiary i kliknij przycisk OK.

    Visual StudioProgram doda projekt do Solution Exploreroraz Projektant Windows Forms otwiera.

  4. Dodać formanty w poniższej tabeli do formularza i ustawić odpowiednie wartości dla ich właściwości.

Obiekt

Właściwości

Wartość

Button

Nazwa

Tekst

Prześlij

Prześlij wejścia

Button

Nazwa

Tekst

Wyczyść

Usuń wpis

TextBox

Nazwa

Tekst

Wielowierszowy

Wpis

Wprowadź coś.

False

Zapisywanie do pliku

Aby dodać możliwość zapisywania do pliku za pośrednictwem aplikacji, użyj StreamWriter klasy.StreamWriterjest przeznaczony do produkcji znaków przy użyciu określonego kodowania, należy Stream klasy jest przeznaczony dla bajtu wejściowe i wyjściowe.Użyj StreamWriter do pisania wierszy informacji w standardowym pliku tekstowym.Aby uzyskać więcej informacji na StreamWriter klasy, zobacz StreamWriter.

Aby dodać funkcje pisania

  1. Z widoku menu, wybierz polecenie kodu , aby otworzyć Edytor kodu.

  2. Ponieważ aplikacja odwołuje się do System.IO obszaru nazw, Dodaj następujące instrukcje na samym początku kodu, przed deklaracji klasy dla formularza, która rozpoczyna się Public Class Form1.

    Imports System
    Imports System.IO
    

    Przed zapisaniem pliku, należy utworzyć wystąpienie StreamWriter klasy.

  3. Z widoku menu, wybierz polecenie Projektant aby powrócić do Windows Forms Projektant.Kliknij dwukrotnie Submit przycisk, aby utworzyć Click obsługi zdarzeń do przycisku, a następnie dodaj następujący kod.

    Dim fw As StreamWriter
    

[!UWAGA]

Visual Studio zintegrowanym środowiskiem dewelopowania (IDE) będzie powrócić do edytora kodu i umieść punkt wstawiania wewnątrz obsługi zdarzenia, gdzie należy dodać kod.

  1. Aby zapisać do pliku, należy użyć Write metoda StreamWriter klasy.Dodaj następujący kod bezpośrednio po Dim fw As StreamWriter.Nie trzeba martwić się, że będzie się wyjątek, jeśli plik nie zostanie znaleziony, ponieważ zostanie utworzony, jeśli jeszcze nie istnieje.

    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. Upewnij się, że użytkownik nie może przesłać pusty wpis dodając następujący kod bezpośrednio po Dim ReadString As String.

    If (Entry.Text = "" Or Entry.Text = "Please enter something.") Then
        Entry.Text = "Please enter something." 
        Return 
    End If
    
  3. Ponieważ dziennik użytkownika będą chcieli przypisywanie daty do każdego wpisu.Wstaw następujący kod po fw = New StreamWriter("C:\MyDiary.txt", True) do zmiennej Today do bieżącej daty.

    Dim Today As DateTime
    Today = Now
    fw.Write(CStr(Today))
    fw.Write(ControlChars.CrLf)
    
  4. Wreszcie, dołączyć kod, aby wyczyścić TextBox.Dodaj następujący kod do Clear przycisku Click zdarzenia.

    Entry.Text = ""
    

Dodawanie funkcji wyświetlania do pamiętnik

W tej sekcji można dodać funkcja, która wyświetla najnowszy wpis w DisplayEntryTextBox.Można również dodać ComboBox , wyświetla różne zapisy i z którego użytkownik może zaznaczyć wpis do wyświetlenia w DisplayEntryTextBox.Wystąpienie StreamReader klasy odczytów z MyDiary.txt.Podobnie jak StreamWriter klasy, StreamReader jest przeznaczony do użytku z plików tekstowych.

W tej sekcji instruktażu Dodaj formanty w poniższej tabeli do formularza i ustawić odpowiednie wartości dla ich właściwości.

Kontrola

Właściwości

Wartości

TextBox

Nazwa

Widoczne

Rozmiar

Wielowierszowy

DisplayEntry

False

120,60

True

Button

Nazwa

Tekst

Wyświetlanie

Wyświetlanie

Button

Nazwa

Tekst

GetEntries

Pobierz zapisy

ComboBox

Nazwa

Tekst

Włączone

PickEntries

Wybierz pozycję

False

Aby wypełnić pole kombi

  1. PickEntriesComboBox Jest używany do wyświetlania dat, na których użytkownik przesyła każdego wpisu, więc użytkownik może wybrać wpis od określonej daty.Tworzenie Click obsługi zdarzeń GetEntries przycisk i Dodaj następujący kod.

    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. Aby przetestować kod, naciśnij klawisz F5 kompilowanie aplikacji, a następnie kliknij przycisk Pobierz zapisy.Kliknij strzałkę rozwijania w ComboBox do wyświetlania dat wejścia.

Aby wybrać i wyświetlić poszczególne zapisy

  1. Tworzenie Click obsługi zdarzenia Display przycisk i Dodaj następujący kod.

    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. Aby przetestować kod, naciśnij klawisz F5, aby skompilować aplikację, a następnie przesyłają wpis.Kliknij przycisk Pobierz zapisy, zaznacz wpis z ComboBox, a następnie kliknij przycisk Ekran.Zawartość wybranego wpisu pojawiają się w DisplayEntryTextBox.

Umożliwiające użytkownikom na usuwanie lub modyfikowanie wpisów

Wreszcie, może zawierać dodatkowe funkcje umożliwia użytkownikom, aby usunąć lub zmodyfikować wpis za pomocą DeleteEntry i EditEntry przyciski.Oba przyciski pozostają wyłączone, chyba, że wpis jest wyświetlany.

Dodać formanty w poniższej tabeli do formularza i ustawić odpowiednie wartości dla ich właściwości.

Kontrola

Właściwości

Wartości

Button

Nazwa

Tekst

Włączone

DeleteEntry

Usuwanie wpisu

False

Button

Nazwa

Tekst

Włączone

EditEntry

Edytuj wpis

False

Button

Nazwa

Tekst

Włączone

SubmitEdit

Zatwierdź Edytuj

False

Aby włączyć, usuwanie i modyfikowanie wpisów

  1. Dodaj następujący kod do Display przycisku Click zdarzenie, po DisplayEntry.Text = ReadString.

    DeleteEntry.enabled = True
    
  2. Tworzenie Click obsługi zdarzenia DeleteEntry przycisk i Dodaj następujący kod.

    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. Gdy użytkownik wyświetla wpis, EditEntry przycisk staje się aktywny.Dodaj następujący kod do Click zdarzenia Display przycisk po DisplayEntry.Text = ReadString.

    EditEntry.Enabled = True
    
  4. Tworzenie Click obsługi zdarzenia EditEntry przycisk i Dodaj następujący kod.

    Entry.Text = DisplayEntry.Text
    SubmitEdit.Enabled = True
    
  5. Tworzenie Click obsługi zdarzenia SubmitEdit przycisk i Dodaj następujący kod:

    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
    

Aby przetestować kod, naciśnij klawisz F5, aby kompilowanie aplikacji.Kliknij przycisk Pobierz zapisy, zaznacz wpis, a następnie kliknij przycisk Ekran.Zapis ten pojawia się w DisplayEntryTextBox.Kliknij przycisk Edytuj wpis.Zapis ten pojawia się w EntryTextBox.Edytować wpis w EntryTextBox i kliknij przycisk Przedstawia edytować.Otwórz MyDiary.txt plik, aby potwierdzić swoje korekty.Teraz wybierz wpis i kliknij przycisk Usuń wpis.Gdy MessageBox żąda potwierdzenia, kliknij OK.Zamknij aplikację i otworzyć MyDiary.txt o potwierdzenie usunięcia.

Zobacz też

Informacje

StreamReader

StreamWriter

Inne zasoby

Język Visual Basic — Wskazówki