Instruktaż: Manipulowanie plikami przy użyciu.NET Framework metod (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 danym komputerze mogą być używane inne nazwy lub lokalizacje pewnych elementów interfejsu użytkownika programu Visual Studio, które są używane w poniższych instrukcjach. Używana wersja programu Visual Studio oraz jej ustawienia określają te elementy. Aby uzyskać więcej informacji, zobacz Visual Studio, ustawienia.
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
Na pliku menu, wybierz opcję Nowy projekt.
W Nowy projekt okienka, kliknij Aplikacji Windows.
W Nazwa pole typu MyDiary i kliknij przycisk OK.
Visual StudioProgram doda projekt do Solution Exploreroraz Projektant Windows Forms otwiera.
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ść |
Nazwa Tekst |
Prześlij Prześlij wejścia |
|
Nazwa Tekst |
Wyczyść Usuń wpis |
|
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
Z widoku menu, wybierz polecenie kodu , aby otworzyć Edytor kodu.
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.
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.
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
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
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)
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 |
---|---|---|
Nazwa Widoczne Rozmiar Wielowierszowy |
DisplayEntry False 120,60 True |
|
Nazwa Tekst |
Wyświetlanie Wyświetlanie |
|
Nazwa Tekst |
GetEntries Pobierz zapisy |
|
Nazwa Tekst Włączone |
PickEntries Wybierz pozycję False |
Aby wypełnić pole kombi
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
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
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
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 |
---|---|---|
Nazwa Tekst Włączone |
DeleteEntry Usuwanie wpisu False |
|
Nazwa Tekst Włączone |
EditEntry Edytuj wpis False |
|
Nazwa Tekst Włączone |
SubmitEdit Zatwierdź Edytuj False |
Aby włączyć, usuwanie i modyfikowanie wpisów
Dodaj następujący kod do Display przycisku Click zdarzenie, po DisplayEntry.Text = ReadString.
DeleteEntry.enabled = True
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
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
Tworzenie Click obsługi zdarzenia EditEntry przycisk i Dodaj następujący kod.
Entry.Text = DisplayEntry.Text SubmitEdit.Enabled = True
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.