vb.net için metin dosyasında ki veriyi textboxlara aktarma

Başlatan bymcfreak, 20 Mayıs 2013, 14:29:32

bymcfreak

arkadaşlar merhaba,

sizin için basit ama benim için zor bir sorum var :) üzerinde çalıştığım bir stok programı var. 200 den fazla hammadde çeşidi ve bu hammaddelerin farklı bileşimlerinden 600 den fazla cihaz modeli ortaya çıkıyor. kısa yoldan ürün reçetesi gibi bir şey yapmayı amaçlıyorum. tabi becerebilirsek.

örneğin deneme.txt dosyası içinde

audi 2013

bmw 2012

opel 2010

diye 3 araç model ve yıl bilgisi var. ben bu bilgiyi 6 adet textbox oluşturup nasıl içerisine yazabilirim. yazdırdıktan sonra farklı matematiksel işlemlerle stok bilgisinin tutulduğu database tablosunda stok adetlerini güncellemeyi hedefliyorum.

textbox1(audi)  textbox2(2013)

textbox3(bmw) textbox4(2012)

textbox5(opel) textbox6(2010)

metin dosyasından veri çekebiliyorum ama metin dosyasından satır olarak geliyor veri. ben audi ve 2013 metinlerinin ayrı textboxlara yazılmasını istiyorum. tıpkı yukarida göstermeye çalıştığım gibi

ya da ürün reçeteleri nasıl yapılır konusunda farklı bir önerisi olan varsa memnuniyetle cevabını okumak isterim.

umarım sorum anlaşılmıştır. teşekkürler şimdiden.

muhittin_kaplan

Verdiğiniz Bilgiler cevap vermemiz için yeterli değil.
Okuyacağınız Text dosyanın formatı nedir ? (tab, virgül ile ayrılmış vb gibi)

Kabil ATICI

verdiğin örnekteki gibi boşluk karakteri varsa ve bu karakteri satırda başka bir yerde kullanmıyorsan, bu karaktere göre verilerini ayrıştırabilirsin. Bu yöntem iki kelimeden oluşan isimler için sorun olabilir...
ambar7

bymcfreak

arkadaşlar,

metinler arasında boşluk var. tab veya virgül veya _ alt çizgi yok.
yanlış bir kullanımsa , nasıl kullanmam gerekiyor?

ben örnek olsun diye araba ismi ve model yılı yazdım. mesela yapacağım örnekte

audi a8 arka süspansiyon takımı 2013 yazmam gerekecek.

Kabil ATICI

sadece tarih bölümünü alacaksan ve tarih yeri (sonda) ve miktarı sabitse (hep 4 hane yazılmışsa)
tarih=mid$(yazı, len(yazı)-4,4)
metin=mid$(yazı, 0, len(yazı)-4)

aşağı yukarı olabilir...

ek:vb6'dan kalma alışkanlık $ işareti olmayabilir.
.net için substring'de kullanılabilir...
ambar7

bymcfreak

Alıntı yapılan: ambar7 - 20 Mayıs 2013, 14:55:19
sadece tarih bölümünü alacaksan ve tarih yeri (sonda) ve miktarı sabitse (hep 4 hane yazılmışsa)
tarih=mid$(yazı, len(yazı)-4,4)
metin=mid$(yazı, 0, len(yazı)-4)

aşağı yukarı olabilir...

ek:vb6'dan kalma alışkanlık $ işareti olmayabilir.
.net için substring'de kullanılabilir...

kullandığım kod aşağıda ki gibi. neresine yazmam gerekiyor senin önerini?

Private Sub ReadFromFile()


        Dim objReader As New System.IO.StreamReader(FILE_NAME)

        Dim boxes As TextBox() = {TextBox1, TextBox2, TextBox3, TextBox4, TextBox5, TextBox6, TextBox7}

        Try

            Dim position As Int32 = 0

            Do While objReader.Peek <> -1

                boxes(position).Text = objReader.ReadLine

                position += 1

            Loop

            'MessageBox.Show("The file has successfully been read.")

        Catch ex As Exception

            MessageBox.Show("The file could not be read. " & ex.Message)

        Finally

            objReader.Close()

        End Try

    End Sub
End Class

Kabil ATICI

 Do While objReader.Peek <> -1
yazi= objReader.ReadLine
tarih=mid$(yazı, len(yazı)-4,4)
metin=mid$(yazı, 0, len(yazı)-4)            'veya tersi!
                boxes(position).Text = tarih
boxes(position+1).Text = metin
                position += 2

değişkenlere atamayı unutma!
ambar7

bymcfreak

Alıntı yapılan: ambar7 - 20 Mayıs 2013, 15:35:22
Do While objReader.Peek <> -1
yazi= objReader.ReadLine
tarih=mid$(yazı, len(yazı)-4,4)
metin=mid$(yazı, 0, len(yazı)-4)            'veya tersi!
                boxes(position).Text = tarih
boxes(position+1).Text = metin
                position += 2

değişkenlere atamayı unutma!


hocam kodu yazdım. değişkenleri string olarak tanımladım. çalıştırınca ekrana hiçbir şey getirmedi. hata kontrolü yapınca da Start değeri sıfır olamaz diye bir hata verdi.

Kabil ATICI

metin=mid$(yazı, 1, len(yazı)-4)            'şeklinde olabilir
ambar7

bymcfreak

Alıntı yapılan: ambar7 - 20 Mayıs 2013, 16:01:50
metin=mid$(yazı, 1, len(yazı)-4)            'şeklinde olabilir

ambar7 tavsiyelerin çok başarılı oldu. teşekkürler. merak ettiğim son birşey var. örneğin;

audi a8 amartisör yayı,5
audi a8 amartisör yayı,50
audi a8 amartisör yayı,500
audi a8 amartisör yayı,5000

diye tanımlarsam virgülden öncesi ve sonrası diye ayırabilir miyim? virgülden sonrasında 1,2,3 ve hata 4 basamaklı bir sayı olabilir.

Kabil ATICI

yazi= objReader.ReadLine
For i = 1 To Len(yazi)
If Mid$(yazi, i, 1) = "," Then virgül_hane = i
Next i
rakam = Mid$(yazi, virgül_hane + 1, Len(yazi) - virgül_hane + 1)
metin = Mid$(yazi, 1, virgül_hane - 1)       

sanırım bu işe görmesi gerek...
ambar7

bymcfreak

Alıntı yapılan: ambar7 - 20 Mayıs 2013, 17:51:38
yazi= objReader.ReadLine
For i = 1 To Len(yazi)
If Mid$(yazi, i, 1) = "," Then virgül_hane = i
Next i
rakam = Mid$(yazi, virgül_hane + 1, Len(yazi) - virgül_hane + 1)
metin = Mid$(yazi, 1, virgül_hane - 1)       

sanırım bu işe görmesi gerek...

ambar7 hocam ilaç oldun. teşekkürler. her türlü hallettim yapmak istediğimi.
bu arada bir konu hakkında bilgin var mı diye sormak istiyorum.
üretim ya da ürün reçetelerinin yapılma mantığı hakkında bir bilgin var mı? profesyonel programlarda bu işlem nasıl yapılıyor? örnek verebilirsen sevinirim?

Kabil ATICI

Bu konuda fazla bilgim yok. Bu program yaptığım işlemci projelerime destek olması için öğrenmiştim. (hyper terminal gibi programlarla uğraşmamak için)
ambar7

bymcfreak

Alıntı yapılan: ambar7 - 21 Mayıs 2013, 10:11:06
Bu konuda fazla bilgim yok. Bu program yaptığım işlemci projelerime destek olması için öğrenmiştim. (hyper terminal gibi programlarla uğraşmamak için)

eyvallah bu kadarı da kafi.

sorum çözüme ulaştı.

herkese teşekkürler.