Anasayfa » VB.NET Dersler ve Örnekler » VB.NET ListBox İçeriğini Kaydetmek ve Okumak

VB.NET ListBox İçeriğini Kaydetmek ve Okumak

Örneğimizde bir listbox’ın içeriğini bir text dosyaya kaydediyoruz. Proje açılışında ise eğer daha önceden oluşturulmuş bir text dosya varsa ve içerisinde değer varsa bu değerleri okuyup text dosya içerisine aktarıyoruz.

Bu örneğimiz için form üzerine bir adet listbox ve ekleme,temizleme ve kaydetme işlemleri için kullanılmak üzere 3 adet buton ekliyoruz.

______________________________________________________________________________

Kodumuz şu şekilde olacak:

 Public Class Form1
    Private Sub cmdekle_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdekle.Click
        Dim sayı As Integer
        sayı = InputBox("Bir Sayı Giriniz")
        ListBox1.Items.Add(sayı)
    End Sub
    Private Sub cmdtemizle_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handlescmdtemizle.Click
        ListBox1.Items.Clear()
    End Sub
Private Sub cmdkaydet_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdkaydet.Click
        Dim i
        FileClose(1)
        FileOpen(1, Application.StartupPath & "\liste.txt", OpenMode.Append, OpenAccess.Write)
        For i = 0 To ListBox1.Items.Count - 1
            WriteLine(1, ListBox1.Items(i).ToString)
        Next i
        FileClose(1)
        MsgBox("Liste Kaydedilmiştir")
End Sub
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Try
            Dim deger
            FileOpen(1, Application.StartupPath & "\liste.txt", OpenMode.Input, OpenAccess.Read)
            Do While Not EOF(1)
                Input(1, deger)
                ListBox1.Items.Add(deger)
            Loop
            MsgBox("Kayıtlar okundu ve uygulandı")
            FileClose(1)
        Catch
            Exit Sub
        End Try
End Sub
End Class
_______________________________________________________________________________________

Kodumuzu biraz açıklayalım. Önce kaydet düğmesinin kodlarını inceleyelim.

 

FileClose(1) 

satırı ile eğer dosya daha önceden açılmış ise kapatıyoruz.

FileOpen(1, Application.StartupPath & “\liste.txt”, OpenMode.Append, OpenAccess.Write)

satırı ile ise dosya açma işlemi yapıyoruz. FileOpen komutunun kullanımı şu şekildedir.

FileOpen(Dosya no,dosya adı ve yolu,dosya açma modu, dosya üzerinde yapılacak işlem)

Burada Application.StartupPath  komutunu görüyoruz. Bu fonksiyon bize projemizin çalıştığı klasörü verir. Dosyamızı Append yani ekleme modunda açıyoruz. Bu şekilde eğer dosyamız daha önceden oluşturulmamış ise oluşturmamız mümkündür. Dosyamıza kayıt yazmak içinde dosyamızı Write yani yazma modunda açıyoruz.

 

For i = 0 To ListBox1.Items.Count – 1

WriteLine(1, ListBox1.Items(i).ToString)

Next i

komut satırları ile öncelikle 0 dan liste kutusundaki elaman sayısının bir eksiğine kadar bir döngü kuruyoruz. Kayıt sayısının bir eksiği dememizin nedeni döngümüzü 0 dan başlatmış olmamızdır. Çünkü listboxlarda ilk elamanın indeks değeri 0 dır.

Daha sonra Writeline komutu ile 1 nolu dosyamıza listboxdaki sıradaki elamanın değerini ToString parametresi ile yazıya dönüştürerek aktarıyoruz.

Son olarak kaydetme işleminde yine FileClose(1) komutu ile dosyamızı kapatıyoruz.

 

Şimdide dosyadan kayıt okuma işlemine geçelim. Bu işlemi form_load olayında yani formumuzun yüklenme işleminde yapıyoruz.

Dim deger

FileOpen(1, Application.StartupPath & “\liste.txt”, OpenMode.Input, OpenAccess.Read)

öncelikle deger adıyla liste kutusundan okuduğumuz değerleri aktarabileceğimiz bir değişken tanımlıyoruz. Daha sonra dosyamızı input modunda yani giriş modunda açarak Read işlemi yani okuma işlemi yapıyoruz.

Do While Not EOF(1)

Input(1, deger)

ListBox1.Items.Add(deger)

Loop

Burada dosya sonu değilken çalışacak bir döngü kuruyoruz. Döngü içerisinde input komutu ile dosyamızdaki satırları okuyup deger değişkenine aktarıyoruz. Daha sonra da bu değer değişkeninin içeriğini listbox’ımıza ekliyoruz.

FileClose(1)

komutu ile de dosyamızdan okuma işlemi bittiği için dosyamızı kapatıyoruz.

Cevapla

E-posta adresiniz yayınlanmayacak. Gerekli alanlar işaretlenmelidir *

*