Bagikan melalui


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

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

Catatan

Komputer Anda mungkin memperlihatkan nama atau lokasi yang berbeda untuk beberapa elemen antarmuka pengguna Visual Studio dalam petunjuk berikut. Edisi Visual Studio yang Anda miliki dan setelan yang Anda gunakan menentukan elemen-elemen ini. Untuk informasi selengkapnya, 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 Project Baru, klik Aplikasi Windows.

  3. Dalam kotak Nama, ketik MyDiary, lalu pilih OK.

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

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

Objek Properti Nilai
Button Nama

Teks
Submit

Kirim Entri
Button Nama

Teks
Clear

Hapus Entri
TextBox Nama

Teks

Multi baris
Entry

Silakan masukkan sesuatu.

False

Menulis ke File

Untuk menambahkan kemampuan untuk menulis ke file melalui aplikasi, gunakan kelas StreamWriter. 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 kelas StreamWriter, lihat StreamWriter.

Untuk menambahkan fungsionalitas penulisan

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

  2. Karena aplikasi mereferensikan namespace layanan System.IO, tambahkan pernyataan berikut di awal kode Anda, sebelum deklarasi kelas untuk formulir, yang dimulai Public Class Form1.

    Imports System.IO
    

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

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

    Dim fw As StreamWriter
    

Catatan

Lingkungan Pengembangan Terpadu (IDE) Visual Studio 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. Tambakan kode berikut langsung setelah Dim fw As StreamWriter. Anda tidak perlu khawatir bahwa pengecualian akan dilemparkan jika file tidak ditemukan, karena akan dibuat 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 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 peristiwa CleartombolClick.

    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 sana pengguna dapat memilih entri untuk ditampilkan di DisplayEntryTextBox. Instans kelas StreamReader membaca dari MyDiary.txt. Seperti kelas StreamWriter, StreamReader dimaksudkan untuk digunakan dengan file teks.

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

Menguasai Properti Nilai
TextBox Nama

Dapat dilihat

Ukuran

Multi baris
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. PickEntriesComboBox digunakan untuk menampilkan tanggal yang pengguna kirimkan setiap entri, sehingga pengguna dapat memilih entri dari tanggal tertentu. Buat penanganan aktivitas Click ke 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 penanganan aktivitas Click 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. Isi entri yang dipilih muncul di DisplayEntryTextBox.

Mengaktifkan Pengguna untuk Menghapus atau Mengubah Entri

Terakhir, Anda dapat menyertakan fungsionalitas tambahan dan memungkinkan pengguna untuk menghapus atau memodifikasi entri menggunakan tombol DeleteEntry dan EditEntry. Kedua tombol tetap dinonaktifkan kecuali entri ditampilkan.

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

Menguasai Properti Nilai
Button Nama

Teks

Diaktifkan
DeleteEntry

Hapus entri

False
Button Nama

Teks

Diaktifkan
EditEntry

Edit Entri

False
Button Nama

Teks

Diaktifkan
SubmitEdit

Krim Edit

False

Untuk mengaktifkan penghapusan dan modifikasi entri

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

    DeleteEntry.enabled = True
    
  2. Buat penanganan aktivitas Click 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 peristiwa Click tombol Display setelah DisplayEntry.Text = ReadString.

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

    Entry.Text = DisplayEntry.Text
    SubmitEdit.Enabled = True
    
  5. Buat penanganan aktivitas Click 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 Entri. Entri muncul di EntryTextBox. Edit entri di EntryTextBox dan klik Kirim Edit. Buka file MyDiary.txt untuk mengonfirmasi koreksi Anda. Sekarang pilih entri dan klik Hapus Entri. Saat konfirmasi permintaan MessageBox, klik OK. Tutup aplikasi dan buka MyDiary.txt untuk mengonfirmasi penghapusan.

Lihat juga