Skip to main content

AccessTr.neT


2 Farklı Datagridview Tablosundan Tek Bir Text Dosyasına Yazma Ve Okuma İşlem

2 Farklı Datagridview Tablosundan Tek Bir Text Dosyasına Yazma Ve Okuma İşlem

Çözüldü #1
Uygulama ve Programım 
Merhaba yukarıdaki linkte ;
Hazırlamakta olduğum basit ama biraz teferruatlı text okuma ve yazma işlemini içeriyor.
İçinde basit örneği olan program = (Deneme2020)
Veri Tabanı = Siparis.Mdb
Detaylı ve Resimli Anlatım Dosyam = Yapılacak İşlerin Açıklaması.Docx
Örnek TXT dosyam = Siparis.TXT.yi içermektedir.
Kullanmakta olduğum  Ticari programa siparişlerin giriş ve çıkışlarını vb.net 2019 dan veri aktarma/verme işlemlerini yapmak  istiyorum.
1 . Ticari Programdan alınan export edilmiş txt dosyasında ; Satır başlarında B ve H harfleri ile başlamaktadır. (B)=Sipariş Başlığını, (H)= İlgili siparişin Hareket satırlarını teşkil eder.
Bu dosyadan okuma yaparken B ile başlayan Satırda;
a.)    Karakter uzunluğuna göre Datagridview1.e alınacak. Örnek olarak ;
B=1 Karakter
S=1 Karakter
SP-0000001=16 Karakter
S=1 Karakter
.SP-0000001 TASFİYE HALİNDE BİLSAN BEMAŞ LTD. ŞTİ.=50 Karakter


b.)    İlk 5 Alanı Örnek olarak gösterirseniz Tablonun devamını tamamlarım.
2. Aynı İşlemleri H ile başlayan satırları Datagriedview2 ye almak istiyorum.
3. Bu işlemleri yaparken ProgressBar ile de veri akışını takip etmek istiyorum. Çünkü Yoğun siparişler olacağından programın kilitlenip takılmadığını, ayrıca göze daha hoş geleceğini düşünüyorum.
4. Diğer Form3  sayfamda 2 Adet Datagridview tablolarım var. 1.sinde Siparişin başlık bilgilerini, 2.sinde Hareket bilgileri var.
Örnek Txt dosyasında olduğu gibi Önce B ile başlayan datagridview datalarını Karakter uzunluklarını dikkate alarak, aralarında boşluk ayrıcı ile yazacak. B satırından sonra datagridview2.den hareket bilgilerini B satırın altına yazacak. Tüm satırlar bu şekilde Txt dosyasına karakter uzunluğu kadar yazacak.Bu işlemleri yaparken Progresbar işlemlerin hızına göre çalışacak.
Not:
1.)  Text Dosyasında virgül veya tab ile ayraç yerine Alan uzunlukları ile yan yana yazılacak.
2.)  Örnek dosyamda bazı satırlar arasındaki boşluk size daha iyi izah edebilmek için ben bıraktım. Aslında satır arası boşluk olmayacak..
Yardımlarınızı bekliyor,şimdiden teşekkürleri bildiriyorum.
Saygılarımla
İsmail Koşarer
Cevapla
#2
sayın  ikosarer
örneğinizi inceledim.
kendimce bazı tavsiyelerim olacak.
1-vb.net projenizde vt olarak sqlite öneririm.(database engine vs ek gereksinimleri olmaz)
2-projenizde henüz çalışan bir kod bloğunuz yok(yani arayüz tasarımı haricinde bir çalışma olmamış)
3-yapılacaklar kısmını okudum projenizi yönetim kısmından ücretli destek alabilirsiniz.(komple çözüm talep edilmiş)
4-beraber yapalım der iseniz kod yazmaya başlayınız takıldığınız yerde sadece  takıldığınız konuya dair destek isteyin.

şimdi proje ile ilgili tavsiyelere gelelim.
1-kayıt ekleme silme güncelleme işlemlerini metod içerisine alınız.
2-txt ile çalışacaksanız vb sınıflarında var ise  (ımports System.IOstreamreader ve streamwriter  metodlarını kullanın.
3-projenizi en baştan adım adım tasarlayın iş akış şeması oluşturun.
4-vb hazır sunucu bağlantılarını kullanmayın kod ile kendiniz oluşturun. 

iyi günler dilerim azim ile devam edin muhakkak sonuca ulaşırsınız.
Universal Form Tasarımı. devamlı güncelleniyor.
SQL TO Vba Convertör.
Cevapla
#3
Merhaba,

Yol gösterme amaçlı bazı bilgileri ilgili DGW lere taşıdım.Sıkışırsanız devamına bakarız.

TXT dosyasını oku butonuna aşağıdaki kodları yapıştırın...

Visual Basic Code
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim BILGI As String
        Dim S1 As Integer
        Dim objReader As New System.IO.StreamReader("C:\Users\Pc\Desktop\VB.Net.Sorum\VB.Net.Sorum\Siparis.TXT")
        S1 = 0
        Do While objReader.Peek() <> -1
            S1 = S1 + 1
            DGW1.Rows.Add(S1, objReader.ReadLine())
        Loop
        For I = 0 To DGW1.Rows.Count - 1
            BILGI = DGW1.Rows(I).Cells(1).Value
            If Microsoft.VisualBasic.Left(BILGI, 1) = "B" Then
                SIPDGW.Rows.Add("B", Mid(BILGI, 2, 1), Mid(BILGI, 3, 16))
            End If
            If Microsoft.VisualBasic.Left(BILGI, 1) = "H" Then
                HARDGW.Rows.Add("H", Mid(BILGI, 2, 1), Mid(BILGI, 3, 16))
            End If
        Next
    End Sub

Please return your positive or negative ...
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da