VB2010'da txt dosyasında bir satırda bulunan 2 kelimeyi ayrı ayrı nasıl okutabilirim?
#1
Ben uzun zaman VB6 ile amatörce uğraştım. VB2010'a geçiş yapmak istedim ama VB6'da çok rahat yaptığım şeyleri VB2010'da yaptırmakta zorlanıyorum. Örneğin;

VB6'da her satırında 2 kelime olan, kelimelerin birbirinden virgül ile ayrıldığı bir *.txt dosyasına her gidişte 2 kelime okuyup gelecek ve bunu 2 ayrı text kutusuna sırayla yazacak kod aşağıdaki gibiydi.

Open App.Path + "\TurEng.txt" For Input As #1
Do While Not EOF(1)
Input #1, Turkce, Ingilizce
Text1.Text = Turkce
Text2.Text = Ingilizce
Loop
Close #1


VB2010'da ise aşağıdaki kodlarla, her satırda yine 2 kelime olan ama kelimelerin birbirinden büyük boşluklarla ayrıldığı bir *.txt dosyasını, yine her defasında 1 satır okutabiliyorum ama o satırdaki 2 kelimeyi de birden alıp geliyor.

Her defasında 1 satır ama o satırda bulunan kelimeleri ayrı ayrı nasıl okutabilirim ?

FileOpen(1, Application.StartupPath & "\TurEng.txt", OpenMode.Input)
Do While Not EOF(1)
TextBox1.AppendText(LineInput(1) & vbNewLine)
Loop
FileClose(1)



  Alıntı
Bu mesajı beğenenler:
#2
Konuyu biraz daha detaylı yazayım. Sanırım böyle daha rahat yardımcı olabilirsiniz...

2 ad Textbox ve 1 Button yardımıyla, TurEng.txt dosyasına, her satırda 2 kelime olacak şekilde, istediğim kadar 2'li kelimeleri aşağıdaki mantıkla yazdırabiliyorum :

Private Sub DosyayaYaz_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DosyayaYaz.Click
FileOpen(1, Application.StartupPath & "\TurEng.txt", OpenMode.Append)
PrintLine(1, TextBox1.Text, TextBox2.Text)
FileClose(1)
End Sub

Bu kodlar TurEng.txt dosyasına kelimeleri aşağıdaki formatta yazıyor :

(Aşağıdaki örnekler arasına 8 karekterlik boşluklar koyuyorum ama önizleme yapınca boşluklar yok oluyor. Oysaki TurEng.txt dosyasını açtığımda, aynı satırdaki kelimeler arasında 8 karekterlik boşluklar mevcut. Aşağıdaki örneklere bu gözle bakınız)

kedi cat
köpek dog
ağaç tree
.
.
.

Göreceğiniz gibi kelimeler arasında virgül yok, sadece boşluk var.

Benim çözemediğim sorun şu :

Kelimeleri nasıl ki 2 textbox yardımıyla 2'li, 2'li yazdırdıysam, aynı şekilde 2'li 2'li de geri okutmak istiyorum. Ancak örneğin ilk satırı okumaya gittiğinde textbox1'e "kedi", textbox2'ye "cat" yazmalı. Ancak şu anda okumaya gidiyor ve textbox1'e "kedi cat" şeklinde yazıyor. Yani satırdaki 2 kelimeyi toptan alıp geliyor. Oysaki nasıl

PrintLine(1, TextBox1.Text, TextBox2.Text)

koduyla 2 ayrı kelimeyi, 2 ayrı textboxdan yazdırdı isem aynı şekilde okuturken de aynı formatta kelimeler ayrı ayrı gelsin ve 2 ayrı textbox'a yazılsın istiyorum.



  Alıntı
Bu mesajı beğenenler:
#3
Arkadaşlar sağdan soldan aldığım yardımları harmanlayıp sorunumu çözdüm gibi. İlgilenen herkese teşekkürler ediyorum. Kodların tamamını başkalarının da işine yarasın diye ekliyorum.

Bu kodlarla bir txt dosyasına 2'li kelimeler ekleyebilir ve aynı txt dosyasından 2'li kelimeleri satır satır okutabilirsiniz...

Bu kodlarla sorunumu kısmen çözmüş oldum. Yeni bir konu açıp aşamadığım kısmı birazdan soracağım. Buraya kadarki yardımlarınız için sağolun...

Kod:
Public Class Form1

    Dim Turkce, Ingilizce As String
    Dim i, j As Integer

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        i = 0
        j = 0
        TextBox1.Focus()
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DosyayaYaz.Click
        FileOpen(1, Application.StartupPath & "\TurEng.txt", OpenMode.Append)
        PrintLine(1, TextBox1.Text, TextBox2.Text)
        TextBox1.Text = ""
        TextBox2.Text = ""
        TextBox1.Focus()
        FileClose(1)
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DosyadanOku.Click
        TextBox1.Text = ""
        TextBox2.Text = ""
        i = i + 1
        For Each line As String In System.IO.File.ReadAllLines(Application.StartupPath & "\TurEng.txt")
            j = j + 1
            If j <= i Then
                Turkce = line.Substring(0, line.IndexOf(" "))
                Ingilizce = line.Remove(0, (line.IndexOf(" ") + 1))
            Else
                Exit For
            End If
        Next
        j = 0
        TextBox1.Text = TextBox1.Text + Turkce + vbCrLf
        TextBox2.Text = TextBox2.Text + Ingilizce + vbCrLf
    End Sub

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Kapat.Click
        End
    End Sub

End Class



  Alıntı
Bu mesajı beğenenler:


Benzer Konular...
Konu: Yazar Cevaplar: Gösterim: Son Mesaj
  VB2010'da txt dosyasında bir satırda bulunan 2 kelimeyi ayrı ayrı nasıl okutabilirim A_day 1 1.141 10-11-2014, 15:29
Son Mesaj: jon206

Foruma Git:


Bu konuyu görüntüleyen kullanıcı(lar): 1 Ziyaretçi