Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu kılavuzda sınıfını kullanarak StreamReader bir dosyanın nasıl açıldığı ve okunduğu, bir dosyaya erişilip erişilmediğinin nasıl denetlendiğini, sınıfın StreamReader bir örneğiyle okunan bir dosya içinde bir dizenin nasıl arandığını ve sınıfını kullanarak StreamWriter bir dosyaya nasıl yazıldığı gösterilmektedir.
Uyarı
Bilgisayarınız, aşağıdaki yönergelerde bazı Visual Studio kullanıcı arabirimi öğeleri 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
Visual Studio'yu başlatın ve kullanıcının belirlenen dosyaya yazmak için kullanabileceği bir form oluşturarak projeyi başlatın.
Projeyi oluşturmak için
Dosya menüsünde Yeni Proje'yi seçin.
Yeni Proje bölmesinde Windows Uygulaması'na tıklayın.
Ad kutusuna yazın
MyDiaryve Tamam'a tıklayın.Visual Studio projeyi Çözüm Gezgini'ne ekler ve Windows Forms Tasarımcısı açılır.
Aşağıdaki tablodaki denetimleri forma ekleyin ve özellikleri için karşılık gelen değerleri ayarlayın.
| Nesne | Özellikleri | Değer |
|---|---|---|
| Button |
İsim Metin |
SubmitBaşvuru Gönder |
| Button |
İsim Metin |
ClearGirdiyi Temizle |
| TextBox |
İsim Metin Çok Satırlı |
EntryLütfen bir şey girin. False |
Dosyaya Yazma
Uygulama aracılığıyla bir dosyaya yazma özelliğini eklemek için sınıfını StreamWriter kullanın. StreamWriter belirli bir kodlamadaki karakter çıkışı için, sınıfı ise Stream bayt girişi ve çıkışı için tasarlanmıştır. Standart bir metin dosyasına bilgi satırları yazmak için kullanın StreamWriter . sınıfı hakkında StreamWriter daha fazla bilgi için bkz StreamWriter. .
Yazma işlevi eklemek için
Görünüm menüsünde Kod'u seçerek Kod Düzenleyicisi'ni açın.
Uygulama System.IO ad alanına başvurduğundan,
Public Class Form1ile başlayan form sınıfı bildiriminden önce ve kodunuzun en başına aşağıdaki deyimleri ekleyin.Imports System.IODosyaya yazmadan önce bir sınıfın örneğini StreamWriter oluşturmanız gerekir.
Görünüm menüsünde Tasarımcı'yı seçerek Windows Forms Tasarımcısı'na dönün. Düğmeye
Submitçift tıklayarak düğme için bir Click olay işleyicisi oluşturun ve aşağıdaki kodu ekleyin.Dim fw As StreamWriter
Uyarı
Visual Studio Tümleşik Geliştirme Ortamı (IDE), Kod Düzenleyicisi'ne döner ve ekleme noktasını, kodu eklemeniz gereken olay işleyicisinin içinde konumlandıracaktır.
Dosyaya yazmak için Write sınıfının StreamWriter yöntemini kullanın. Aşağıdaki kodu doğrudan arkasına
Dim fw As StreamWriterekleyin. Dosya bulunamazsa bir hata oluşturulacağından endişelenmeniz gerekmez, çünkü eğer 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 arkasına
Dim ReadString As Stringekleyerek kullanıcının boş bir girdi gönderemediğinden emin olun.If (Entry.Text = "" Or Entry.Text = "Please enter something.") Then Entry.Text = "Please enter something." Return End IfBu bir günlük olduğundan, kullanıcı her girişe bir tarih atamak isteyecektir. Değişkeni
fw = New StreamWriter("C:\MyDiary.txt", True)geçerli tarihe ayarlamak için aşağıdaki koduTodaysonra ekleyin.Dim Today As DateTime Today = Now fw.Write(CStr(Today)) fw.Write(ControlChars.CrLf)Son olarak, TextBox öğesini temizlemek için kod ekleyin.
Cleardüğmesinin Click olayına aşağıdaki kodu ekleyin.Entry.Text = ""
Günlüğe Görüntü Özellikleri Ekleme
Bu bölümde, içinde en son girdiyi DisplayEntryTextBoxgörüntüleyen bir özellik ekleyebilirsiniz. Ayrıca, çeşitli girişleri görüntüleyen ve kullanıcının bir girdi seçerek ComboBoxDisplayEntry'de görüntülemesini sağlayan bir TextBox ekleyebilirsiniz.
StreamReader sınıfının bir örneği MyDiary.txt'den okur. sınıfı gibi StreamWriter , StreamReader metin dosyalarıyla kullanılmak üzere tasarlanmıştır.
İzlenecek kılavuzun 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.
| Yönetim | Özellikler | Değerler |
|---|---|---|
| TextBox |
İsim Görünür Boyut Çok Satırlı |
DisplayEntryFalse120,60True |
| Button |
İsim Metin |
DisplayGörüntüleme |
| Button |
İsim Metin |
GetEntriesVerileri Getir |
| ComboBox |
İsim Metin Etkinleştirildi |
PickEntriesKayıt Seçin False |
Kombinasyon kutusunu doldurmak için
PickEntriesComboBox, kullanıcının her girdiyi gönderdiği tarihleri görüntülemek için kullanılır, böylece kullanıcı belirli bir tarihten bir girdi seçebilir. Click düğmesine birGetEntriesolay iş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 F5 tuşuna basarak uygulamayı derleyin ve ardından Girişleri Al'a tıklayın. Giriş tarihlerini görüntülemek için içindeki ComboBox açılan oka tıklayın.
Tek tek girdileri seçmek ve görüntülemek için
Düğme için Click bir
Displayolay iş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ı derleyin ve bir girdi gönderin. Girdileri Al'a tıklayın, ComboBoxöğeden bir girdi seçin ve ardından Görüntüle'ye tıklayın. Seçili girdinin içeriği içinde
DisplayEntryTextBoxgörünür.
Kullanıcıların Girdileri Silmesini veya Değiştirmesini Etkinleştirme
Son olarak, DeleteEntry ve EditEntry düğmelerini kullanarak kullanıcıların bir girişi silmesine veya değiştirmesine olanak tanıyan ek işlevler ekleyebilirsiniz. Bir giriş görüntülenmediği sürece her iki düğme de devre dışı kalır.
Aşağıdaki tablodaki denetimleri forma ekleyin ve özellikleri için karşılık gelen değerleri ayarlayın.
| Yönetim | Özellikler | Değerler |
|---|---|---|
| Button |
İsim Metin Etkinleştirildi |
DeleteEntryGirdiyi Sil False |
| Button |
İsim Metin Etkinleştirildi |
EditEntryGirdiyi Düzenle False |
| Button |
İsim Metin Etkinleştirildi |
SubmitEditDüzenlemeyi Gönder False |
Girdilerin silinmesini ve değiştirilmesini etkinleştirmek için
Displaydüğmesinin Click olayından sonra,DisplayEntry.Text = ReadStringsonrasında aşağıdaki kodu ekleyin.DeleteEntry.enabled = TrueDüğme için Click bir
DeleteEntryolay iş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 girdi görüntülediğinde düğme
EditEntryetkinleştirilir. Click sonraDisplaydüğmesininDisplayEntry.Text = ReadStringolayına aşağıdaki kodu ekleyin.EditEntry.Enabled = TrueDüğme için Click bir
EditEntryolay işleyicisi oluşturun ve aşağıdaki kodu ekleyin.Entry.Text = DisplayEntry.Text SubmitEdit.Enabled = TrueDüğme için Click bir
SubmitEditolay iş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 basarak uygulamayı derleyin.
"Girdileri Al"'a tıklayın, bir "girdi" seçin ve ardından "Görüntüle"'ye tıklayın. girdisi içinde DisplayEntryTextBoxgörünür.
Girdiyi Düzenle üzerine tıklayın. girdisi içinde EntryTextBoxgörünür. içindeki girdiyi düzenleyin ve EntryTextBox tıklayın.
MyDiary.txt Düzeltmenizi onaylamak için dosyayı açın. Şimdi bir girdi seçin ve Girdiyi Sil'e tıklayın.
MessageBox İstek onayı geldiğinde Tamam'a tıklayın. Silme işlemini onaylamak için uygulamayı kapatın ve açın MyDiary.txt .