İzlenecek Yol: .NET Framework Yöntemlerini Kullanarak Dosyaları Düzenleme (Visual Basic)
Bu kılavuzda sınıfını kullanarak bir dosyayı açma ve okuma, bir dosyaya erişiliyor mu kontrol edin, sınıfın bir örneğiyle okunan dosyanın içinde dize arama ve sınıfını kullanarak bir dosyaya yazma adımlarını StreamReader StreamReader StreamWriter anlatabilirsiniz.
Not
Bilgisayarınız, aşağıdaki yönergelerde yer alan Visual Studio kullanıcı arabirimi öğelerinden bazıları için farklı adlar veya konumlar gösterebilir. Sahip olduğunuz Visual Studio sürümü ve kullandığınız ayarlar bu öğeleri belirler. Daha fazla bilgi için bkz. IDE 'Yi kişiselleştirme.
Uygulamayı Oluşturma
İlk Visual Studio ve kullanıcının belirlenen dosyaya yazmak için kullanabileceği bir form oluşturarak projeyi başlatabilirsiniz.
Proje oluşturmak için
Dosya menüsünde Yeni dosya'Project.
Yeni Uygulama bölmesinde Project Uygulama'ya Windows tıklayın.
Ad kutusuna yazın ve
MyDiaryTamam'a tıklayın.Visual Studio, projeyi Çözüm Gezgini ekler ve Windows Forms Tasarımcısı açılır.
Aşağıdaki tabloda yer alan denetimleri forma ekleyin ve özellikleri için karşılık gelen değerleri ayarlayın.
| Nesne | Özellikler | Değer |
|---|---|---|
| Button | Ad Metin |
SubmitGirdi Gönder |
| Button | Ad Metin |
ClearGirişi Temizle |
| TextBox | Ad Metin Multiline |
EntryLütfen bir şey girin. False |
Dosyaya Yazma
Uygulama aracılığıyla bir dosyaya yazma yeteneği eklemek için sınıfını StreamWriter kullanın. StreamWriter belirli bir kodlamada karakter çıkışı için, sınıfı Stream ise bayt girişi ve çıkışı için tasarlanmıştır. Standart StreamWriter metin dosyasına bilgi satırları yazmak için kullanın. sınıfı hakkında daha fazla StreamWriter bilgi için bkz. StreamWriter .
Yazma işlevi eklemek için
Görünüm menüsünde Kod'a tıklayın ve Kod Düzenleyicisi'ni açın.
Uygulama ad alanına başvur olduğundan, aşağıdaki deyimlerini kodunuzun en başına, formun sınıf bildiriminden önce ekleyin. Bu System.IO deyimler
Public Class Form1başlar.Imports System.IODosyaya yazmadan önce bir sınıfın örneğini oluşturmanız StreamWriter gerekir.
Görünüm menüsünden, Windows Forms Tasarımcısı'Windows seçin. Düğmeye çift tıklayarak
Submitdüğme için bir olay Click işleyicisi oluşturun ve ardından aşağıdaki kodu ekleyin.Dim fw As StreamWriter
Not
Visual Studio Tümleşik Geliştirme Ortamı (IDE) Kod Düzenleyicisi'ne geri döner ve ekleme noktasını olay işleyicisinde kodu eklemeniz gereken yere konumlar.
Dosyaya yazmak için sınıfının Write yöntemini StreamWriter kullanın. Hemen sonra aşağıdaki kodu
Dim fw As StreamWriterekleyin. Dosya bulunamasa bir özel durum oluşturulacak diye endişelenmenize gerek yoktur, çünkü dosya zaten yoksa oluşturulur.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 TryAşağıdaki kodu doğrudan sonra ekleyerek kullanıcının boş bir giriş göndereyemeynekleye sahip olduğundan emin
Dim ReadString As Stringolun.If (Entry.Text = "" Or Entry.Text = "Please enter something.") Then Entry.Text = "Please enter something." Return End IfBu bir olay olduğundan, kullanıcı her girişe bir tarih atamak ister. değişkenini geçerli
fw = New StreamWriter("C:\MyDiary.txt", True)tarihe ayarlamak için aşağıdakiTodaykodu sonraya girin.Dim Today As DateTime Today = Now fw.Write(CStr(Today)) fw.Write(ControlChars.CrLf)Son olarak, temizlemek için kodu TextBox iliştirin. Düğmenin olayına
Clearaşağıdaki kodu Click ekleyin.Entry.Text = ""
Display Features 'a Display Features (Ekran Özellikleri) Ekleme
Bu bölümde, içinde en son girişi görüntüleyen bir özellik eksersiniz. DisplayEntry TextBox Ayrıca, çeşitli girdileri görüntüleyen ve kullanıcının içinde görüntülemek üzere bir ComboBox giriş seçen bir de ekebilirsiniz. DisplayEntry TextBox sınıfının bir örneği StreamReader sınıfından MyDiary.txt okur. sınıfı StreamWriter gibi, StreamReader metin dosyalarıyla kullanılmak üzere tasarlanmıştır.
Gözden geçirmenin bu bölümü için, aşağıdaki tabloda yer alan denetimleri forma ekleyin ve özellikleri için karşılık gelen değerleri ayarlayın.
| Denetim | Özellikler | Değerler |
|---|---|---|
| TextBox | Ad Görünür Boyut Multiline |
DisplayEntryFalse120,60True |
| Button | Ad Metin |
DisplayGörüntüleme |
| Button | Ad Metin |
GetEntriesGirişleri Al |
| ComboBox | Ad Metin Etkin |
PickEntriesBir Giriş seçin False |
Birleşik giriş kutusunu doldurmak için
, kullanıcının her girişi göndererek belirli bir tarihten bir giriş seçmesini
PickEntriesComboBox sağlar. Düğmeye bir Click olayGetEntriesişleyicisi oluşturun ve aşağıdaki kodu ekleyin.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 = TrueKodunuzu test etmek için uygulamayı derlemek için F5 tuşuna basın ve ardından Girişleri Al'a tıklayın. Giriş tarihlerini görüntülemek için içinde ComboBox açılan oka tıklayın.
Tek tek girişleri seçmek ve görüntülemek için
Düğme için Click bir olay
Displayişleyicisi oluşturun ve aşağıdaki kodu ekleyin.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 = ReadStringKodunuzu test etmek için F5 tuşuna basarak uygulamayı derlenin ve ardından bir giriş gönderin. Girişleri Al'a tıklayın, 'den bir giriş seçin ComboBox ve ardından Görüntüle'ye tıklayın. Seçilen girişin içeriği içinde
DisplayEntryTextBox görünür.
Kullanıcıların Girişleri Silmesini veya Değiştirmesini Etkinleştirme
Son olarak, kullanıcıların ve düğmelerini kullanarak bir girişi silmesini veya değiştirmesini sağlayan ek işlevler DeleteEntry EditEntry dahilebilirsiniz. Giriş görüntülenmediği sürece her iki düğme de devre dışı kalır.
Aşağıdaki tabloda yer alan denetimleri forma ekleyin ve özellikleri için karşılık gelen değerleri ayarlayın.
| Denetim | Özellikler | Değerler |
|---|---|---|
| Button | Ad Metin Etkin |
DeleteEntryGirişi Sil False |
| Button | Ad Metin Etkin |
EditEntryGirdiyi Düzenle False |
| Button | Ad Metin Etkin |
SubmitEditDüzenle'yi Gönder False |
Girişlerin silinmesini ve değiştirilmesini etkinleştirmek için
Düğmenin
Displayolayına, sonra aşağıdaki kodu ClickDisplayEntry.Text = ReadStringekleyin.DeleteEntry.enabled = TrueDüğme için Click bir olay
DeleteEntryişleyicisi oluşturun ve aşağıdaki kodu ekleyin.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 IfKullanıcı bir giriş görüntüledikten sonra
EditEntrydüğme etkinleştirilir. düğmenin ardından gelen Click olayına aşağıdakiDisplaykoduDisplayEntry.Text = ReadStringekleyin.EditEntry.Enabled = TrueDüğme için Click bir olay
EditEntryişleyicisi oluşturun ve aşağıdaki kodu ekleyin.Entry.Text = DisplayEntry.Text SubmitEdit.Enabled = TrueDüğme için Click bir olay
SubmitEditişleyicisi oluşturun ve aşağıdaki kodu ekleyinDim 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
Kodunuzu test etmek için F5 tuşuna basın ve uygulamayı derlenin. Girişleri Al'a tıklayın, bir giriş seçin ve ardından Görüntüle'ye tıklayın. girdisi içinde DisplayEntry TextBox görünür. Girişi Düzenle'ye tıklayın. girdisi içinde Entry TextBox görünür. içinde girdisini düzenleyin ve Entry TextBox Düzenle'yi Gönder'e tıklayın. Düzeltmenizi MyDiary.txt onaylamak için dosyasını açın. Şimdi bir girdi seçin ve Girişi Sil'e tıklayın. Onay MessageBox isteği geldiğinde Tamam'a tıklayın. Uygulamayı kapatın ve silme MyDiary.txt işlemini onaylamak için açın.