VB2013 - txt dosyasından satır satır nasıl okuma yaptırabilirim ?

A_day

Öğrenci
Katılım
4 Şubat 2014
Mesajlar
41
Reaksiyon puanı
0
Puanları
6
Aşağıdaki kodlarla "Yaz" butonuna tıkladığımda, bir txt dosyasına, 4 textboxa girdiğim ad, soyad, evtel, ceptel bilgilerinin tamamını tek bir satıra yazdırıyorum. Bunu 100 küsür kişi için yapıyorum.

Sonra bu txt dosyasını sırayla satır satır okutmak istediğimde, txt dosyasının sonuna kadar bir anda okuma yapıyor textboxlara sadece en son satırda okuduklarını yazıyor.

Oysa benim yapmak istediğim; "Oku" butonuna her tıklamada tek bir satır okunsun ve satırdaki 4 ayrı bilgi sırayla 4 textboxa yazılsın. Bir sonraki tıklamada ise kaldığı yerden bir sonraki satırı okusun.

Okuma işlemini yaparken, her satırda durup okuduklarını textboxlara yazmasını, bir sonraki satır için "Oku" butonuna basmamı beklemesini nasıl sağlayabilirim ?

Kod:
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        FileOpen(1, Application.StartupPath & "\Kayitlar.txt", OpenMode.Append)
        WriteLine(1, TextBox1.Text, TextBox2.Text, TextBox3.Text, TextBox4.Text)
        FileClose(1)
    End Sub


    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        Dim Ad As String, Soyad As String, Tel1 As String, Tel2 As String, Ayikla() As String
        FileOpen(1, Application.StartupPath & "\Kayitlar.txt", OpenMode.Input)
        While Not EOF(1)
            Ayikla = Split(LineInput(1), Chr(34) & "," & Chr(34))
            Ad = Mid(Ayikla(0), 2, Len(Ayikla(0)) - 1)
            Soyad = Ayikla(1)
            Tel1 = Ayikla(2)
            Tel2 = Mid(Ayikla(3), 1, Len(Ayikla(3)) - 1)


            TextBox1.Text = Ad
            TextBox2.Text = Soyad
            TextBox3.Text = Tel1
            TextBox4.Text = Tel2
        End While
        FileClose(1)
    End Sub
 

eSa

Dekan
Katılım
5 Kasım 2011
Mesajlar
9,782
Reaksiyon puanı
352
Puanları
263
Bence tüm kayıtları bir gride aktar, çünkü dediğin şekilde saçma oluyor. text dosya okuma mantığına ters.

- - - Mesaj Güncellendi - - -

En kolayı:

TextBox4.Text = Tel2

satırından sonra bir msgbox koy.

if msgbox("Aranan kayıt bu mu?",vbyesno)=vbyes then
fileclose(1)
exit sub
end if


gibi araya girebilirsin.
 

A_day

Öğrenci
Katılım
4 Şubat 2014
Mesajlar
41
Reaksiyon puanı
0
Puanları
6
İlginize teşekkür ediyorum. Msgbox kullanmayı, ek bir pencereyle diyaloğa girmeyi prensip olarak sevmiyorum. While komutunu adım adım işletmeyi başka bir yöntemle çözdüm. Belki başkalarının işine de yarar diye paylaşıyorum...
Kod:
    Private Sub FullCheckList()
        i = i + 1
        If i = 1 Then   'sadece ilk gelişte dosyayı aç....
            FileOpen(1, Application.StartupPath & "\PMDG_NGX_CL.txt", OpenMode.Input)
        End If


        If i = 2 Then   'ikinci satıra geçtiysen Onceki butonunu aktif edebilirsin...
            btnOnceki.Enabled = True
        End If


        While Not EOF(1)
            SatirNo = SatirNo + 1
            If SatirNo <= i Then
                Ayikla = Split(LineInput(1), Chr(34) & "," & Chr(34))
                No = Mid(Ayikla(0), 2, Len(Ayikla(0)) - 1)
                FileAdi = Ayikla(1)
                CL = Ayikla(2)
                Tani = Mid(Ayikla(3), 1, Len(Ayikla(3)) - 1)
                TextBox1.Text = CL
                TextBox2.Text = Tani
                ResimSec()
            Else
                SatirNo = SatirNo - 1
                Dosya = "Açık"  'txt dosyasının açık kalması gerektiğini anlıyoruz...
                Exit While
            End If


        End While


        If Dosya = "Açık" Then
            Exit Sub
        End If


        FileClose(1)
    End Sub
 
Üst