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
Pada menu File, pilih Proyek Baru.
Di panel Project Baru, klik Aplikasi Windows.
Dalam kotak Nama, ketik
MyDiary
, lalu pilih OK.Visual Studio menambahkan proyek ke Penjelajah Solusi, dan Formulir Windows Designer terbuka.
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
Dari menu Tampilan, pilih Kode untuk membuka Editor Kode.
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.
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.
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
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
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 variabelToday
ke tanggal saat ini.Dim Today As DateTime Today = Now fw.Write(CStr(Today)) fw.Write(ControlChars.CrLf)
Terakhir, lampirkan kode untuk menghapus TextBox. Tambahkan kode berikut ke peristiwa
Clear
tombolClick.Entry.Text = ""
Menambahkan Fitur Tampilan ke Buku Harian
Di bagian ini, Anda menambahkan fitur yang menampilkan entri terbaru di DisplayEntry
TextBox. Anda juga dapat menambahkan ComboBox yang menampilkan berbagai entri dan dari sana pengguna dapat memilih entri untuk ditampilkan di DisplayEntry
TextBox. 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
PickEntries
ComboBox digunakan untuk menampilkan tanggal yang pengguna kirimkan setiap entri, sehingga pengguna dapat memilih entri dari tanggal tertentu. Buat penanganan aktivitas Click ke tombolGetEntries
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
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
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
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
DisplayEntry
TextBox.
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
Tambahkan kode berikut ke peristiwa
Display
tombol Click, setelahDisplayEntry.Text = ReadString
.DeleteEntry.enabled = True
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
Saat pengguna menampilkan entri, tombol
EditEntry
menjadi diaktifkan. Tambahkan kode berikut ke peristiwa Click tombolDisplay
setelahDisplayEntry.Text = ReadString
.EditEntry.Enabled = True
Buat penanganan aktivitas Click untuk tombol
EditEntry
dan tambahkan kode berikut.Entry.Text = DisplayEntry.Text SubmitEdit.Enabled = True
Buat penanganan aktivitas Click untuk tombol
SubmitEdit
dan tambahkan kode berikutDim 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 DisplayEntry
TextBox. Klik Edit Entri. Entri muncul di Entry
TextBox. Edit entri di Entry
TextBox 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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk