İ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

  1. Dosya menüsünde Yeni dosya'Project.

  2. Yeni Uygulama bölmesinde Project Uygulama'ya Windows tıklayın.

  3. Ad kutusuna yazın ve MyDiary Tamam'a tıklayın.

    Visual Studio, projeyi Çözüm Gezgini ekler ve Windows Forms Tasarımcısı açılır.

  4. 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
Submit

Girdi Gönder
Button Ad

Metin
Clear

Girişi Temizle
TextBox Ad

Metin

Multiline
Entry

Lü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

  1. Görünüm menüsünde Kod'a tıklayın ve Kod Düzenleyicisi'ni açın.

  2. 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 Form1 başlar.

    Imports System.IO
    

    Dosyaya yazmadan önce bir sınıfın örneğini oluşturmanız StreamWriter gerekir.

  3. Görünüm menüsünden, Windows Forms Tasarımcısı'Windows seçin. Düğmeye çift tıklayarak Submit düğ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.

  1. Dosyaya yazmak için sınıfının Write yöntemini StreamWriter kullanın. Hemen sonra aşağıdaki kodu Dim fw As StreamWriter ekleyin. 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 Try
    
  2. Aşağıdaki kodu doğrudan sonra ekleyerek kullanıcının boş bir giriş göndereyemeynekleye sahip olduğundan emin Dim ReadString As String olun.

    If (Entry.Text = "" Or Entry.Text = "Please enter something.") Then
        Entry.Text = "Please enter something."
        Return
    End If
    
  3. Bu 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ğıdaki Today kodu sonraya girin.

    Dim Today As DateTime
    Today = Now
    fw.Write(CStr(Today))
    fw.Write(ControlChars.CrLf)
    
  4. Son olarak, temizlemek için kodu TextBox iliştirin. Düğmenin olayına Clear aş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
DisplayEntry

False

120,60

True
Button Ad

Metin
Display

Görüntüleme
Button Ad

Metin
GetEntries

Girişleri Al
ComboBox Ad

Metin

Etkin
PickEntries

Bir Giriş seçin

False

Birleşik giriş kutusunu doldurmak için

  1. , kullanıcının her girişi göndererek belirli bir tarihten bir giriş seçmesini PickEntries ComboBox sağlar. Düğmeye bir Click olay GetEntries 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 = True
    
  2. Kodunuzu 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

  1. Düğme için Click bir olay Display 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 = ReadString
    
  2. Kodunuzu 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 DisplayEntry TextBox 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
DeleteEntry

Girişi Sil

False
Button Ad

Metin

Etkin
EditEntry

Girdiyi Düzenle

False
Button Ad

Metin

Etkin
SubmitEdit

Düzenle'yi Gönder

False

Girişlerin silinmesini ve değiştirilmesini etkinleştirmek için

  1. Düğmenin Display olayına, sonra aşağıdaki kodu Click DisplayEntry.Text = ReadString ekleyin.

    DeleteEntry.enabled = True
    
  2. Düğme için Click bir olay DeleteEntry 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 If
    
  3. Kullanıcı bir giriş görüntüledikten sonra EditEntry düğme etkinleştirilir. düğmenin ardından gelen Click olayına aşağıdaki Display kodu DisplayEntry.Text = ReadString ekleyin.

    EditEntry.Enabled = True
    
  4. Düğme için Click bir olay EditEntry işleyicisi oluşturun ve aşağıdaki kodu ekleyin.

    Entry.Text = DisplayEntry.Text
    SubmitEdit.Enabled = True
    
  5. Düğme için Click bir olay SubmitEdit işleyicisi oluşturun ve aşağıdaki kodu ekleyin

    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
    

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.

Ayrıca bkz.