Bagikan melalui


Panduan: Memanipulasi File dengan Menggunakan Metode .NET Framework (Visual Basic)

Panduan ini menunjukkan cara membuka dan membaca file menggunakan StreamReader kelas , periksa untuk melihat apakah file sedang diakses, mencari string dalam file yang dibaca dengan instans StreamReader kelas, dan menulis ke file menggunakan StreamWriter kelas .

Nota

Komputer Anda mungkin menampilkan nama atau lokasi yang berbeda untuk beberapa elemen antarmuka pengguna Visual Studio dalam instruksi berikut. Edisi Visual Studio yang Anda miliki dan pengaturan yang Anda gunakan menentukan elemen-elemen ini. Untuk informasi lebih lanjut, lihat Mempersonalisasi IDE.

Membuat Aplikasi

Mulai Visual Studio dan mulai proyek dengan membuat formulir yang dapat digunakan pengguna untuk menulis ke file yang ditunjuk.

Untuk membuat proyek

  1. Pada menu File, pilih Proyek Baru.

  2. Di panel Proyek Baru , klik Aplikasi Windows.

  3. Dalam kotak Nama ketik MyDiary dan klik OK.

    Visual Studio menambahkan proyek ke Penjelajah Solusi, dan Windows Forms Designer terbuka.

  4. Tambahkan kontrol dalam tabel berikut ke formulir dan atur nilai terkait untuk propertinya.

Objek Atribut Nilai
Button Nama

Teks
Submit

Kirim Entri
Button Nama

Teks
Clear

Hapus Entri
TextBox Nama

Teks

Multibaris
Entry

Silakan masukkan sesuatu.

False

Menulis ke File

Untuk menambahkan kemampuan untuk menulis ke file melalui aplikasi, gunakan StreamWriter kelas . StreamWriter dirancang untuk output karakter dalam pengodean tertentu, sedangkan kelas Stream dirancang untuk input dan output byte. Gunakan StreamWriter untuk menulis baris informasi ke file teks standar. Untuk informasi selengkapnya tentang StreamWriter kelas, lihat StreamWriter.

Untuk menambahkan fungsionalitas penulisan

  1. Dari menu Tampilan , pilih Kode untuk membuka Editor Kode.

  2. Karena aplikasi mereferensikan namespace System.IO, tambahkan pernyataan ini pada awal kode Anda, sebelum deklarasi kelas untuk form, yang dimulai Public Class Form1.

    Imports System.IO
    

    Sebelum menulis ke file, Anda harus membuat instans StreamWriter kelas.

  3. Dari menu Tampilan , pilih Perancang untuk kembali ke Desainer Formulir Windows. Klik dua kali tombol Submit untuk membuat Click penanganan aktivitas untuk tombol, lalu tambahkan kode berikut.

    Dim fw As StreamWriter
    

Nota

Visual Studio Integrated Development Environment (IDE) akan kembali ke Editor Kode dan memposisikan titik penyisipan dalam penanganan aktivitas tempat Anda harus menambahkan kode.

  1. Untuk menulis ke file, gunakan metode Write dari kelas StreamWriter. Tambahkan kode berikut langsung setelah Dim fw As StreamWriter. Anda tidak perlu khawatir bahwa pengecualian akan terjadi jika file tidak ditemukan, karena akan dibuat secara otomatis jika belum ada.

    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. Pastikan bahwa pengguna tidak dapat mengirimkan entri kosong dengan menambahkan kode berikut langsung setelah Dim ReadString As String.

    If (Entry.Text = "" Or Entry.Text = "Please enter something.") Then
        Entry.Text = "Please enter something."
        Return
    End If
    
  3. Karena ini adalah buku harian, pengguna akan ingin menetapkan tanggal untuk setiap entri. Sisipkan kode berikut setelah fw = New StreamWriter("C:\MyDiary.txt", True) untuk mengatur variabel Today ke tanggal saat ini.

    Dim Today As DateTime
    Today = Now
    fw.Write(CStr(Today))
    fw.Write(ControlChars.CrLf)
    
  4. Terakhir, lampirkan kode untuk menghapus TextBox. Tambahkan kode berikut ke Clear peristiwa tombol Click .

    Entry.Text = ""
    

Menambahkan Fitur Tampilan ke Buku Harian

Di bagian ini, Anda menambahkan fitur yang menampilkan entri terbaru di DisplayEntryTextBox. Anda juga dapat menambahkan ComboBox yang menampilkan berbagai entri dan dari mana pengguna dapat memilih entri untuk ditampilkan di DisplayEntryTextBox. Sebuah instance dari kelas StreamReader membaca dari MyDiary.txt. Seperti kelas StreamWriter, StreamReader ditujukan untuk digunakan dengan file teks.

Untuk bagian panduan ini, tambahkan kontrol dalam tabel berikut ke formulir dan atur nilai terkait untuk propertinya.

Pengendalian Karakteristik Nilai
TextBox Nama

Terlihat

Ukuran

Multibaris
DisplayEntry

False

120,60

True
Button Nama

Teks
Display

Menampilkan
Button Nama

Teks
GetEntries

Dapatkan Entri
ComboBox Nama

Teks

Diaktifkan
PickEntries

Pilih Entri

False

Untuk mengisi kotak kombo

  1. PickEntries ComboBox digunakan untuk menampilkan tanggal pengguna mengirimkan setiap entri, sehingga pengguna dapat memilih entri dari tanggal tertentu. Buat Click pengendali acara untuk tombol GetEntries dan tambahkan kode berikut.

    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. Untuk menguji kode Anda, tekan F5 untuk mengkompilasi aplikasi, lalu klik Dapatkan Entri. Klik panah turun bawah di ComboBox untuk menampilkan tanggal entri.

Untuk memilih dan menampilkan entri individual

  1. Buat Click penanganan aktivitas untuk tombol Display dan tambahkan kode berikut.

    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. Untuk menguji kode Anda, tekan F5 untuk mengkompilasi aplikasi, lalu kirimkan entri. Klik Dapatkan Entri, pilih entri dari ComboBox, lalu klik Tampilkan. Konten entri yang dipilih muncul di DisplayEntryTextBox.

Mengaktifkan Pengguna untuk Menghapus atau Mengubah Entri

Terakhir, Anda dapat menyertakan fungsionalitas tambahan memungkinkan pengguna untuk menghapus atau memodifikasi entri dengan menggunakan DeleteEntry tombol dan EditEntry . Kedua tombol tetap tidak aktif kecuali jika ada entri yang ditampilkan.

Tambahkan kontrol dalam tabel berikut ke formulir dan atur nilai terkait untuk propertinya.

Pengendalian Karakteristik Nilai
Button Nama

Teks

Diaktifkan
DeleteEntry

Hapus Entri

False
Button Nama

Teks

Diaktifkan
EditEntry

Sunting Entri

False
Button Nama

Teks

Diaktifkan
SubmitEdit

Ajukan Pengeditan

False

Untuk mengaktifkan penghapusan dan modifikasi entri

  1. Tambahkan kode berikut ke Display peristiwa tombol Click , setelah DisplayEntry.Text = ReadString.

    DeleteEntry.enabled = True
    
  2. Buat Click penanganan aktivitas untuk tombol DeleteEntry dan tambahkan kode berikut.

    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. Saat pengguna menampilkan entri, tombol EditEntry menjadi diaktifkan. Tambahkan kode berikut ke acara Click dari tombol Display setelah DisplayEntry.Text = ReadString.

    EditEntry.Enabled = True
    
  4. Buat Click penanganan aktivitas untuk tombol EditEntry dan tambahkan kode berikut.

    Entry.Text = DisplayEntry.Text
    SubmitEdit.Enabled = True
    
  5. Buat Click penanganan aktivitas untuk tombol SubmitEdit dan tambahkan kode berikut

    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
    

Untuk menguji kode Anda, tekan F5 untuk mengkompilasi aplikasi. Klik Dapatkan Entri, pilih entri, lalu klik Tampilkan. Entri muncul di DisplayEntryTextBox. Klik Edit Masukan. Entri muncul di EntryTextBox. Edit entri di EntryTextBox dan klik Kirim Edit. MyDiary.txt Buka file untuk mengonfirmasi koreksi Anda. Sekarang pilih entri dan klik Hapus Entri. Ketika MessageBox meminta konfirmasi, klik OK. Tutup aplikasi dan buka MyDiary.txt untuk mengonfirmasi penghapusan.

Lihat juga