En iyi yanıtlayıcılar
Metin belgesinden veri okuma hakkında yardım

Soru
-
Herkese merhaba,
Bir proje için txt uzantılı dosyadan belli koşullara göre satırları alip gridview'de göstermem gerekiyor aşağıdaki kodları kullanarak belli aşamaya kadar geldim ancak şöyle bir durum var gridview'e yazarken koşula uyan satır sayısı kadar boş satır türetip akabinde tekrar kodları çalıştırmak için butonu clicklediğimde aldığı boş satırların üstüne dolu satırları ekleyerek getirmekte umarım anlatabilmişimdir derdimi kodlarım aşağıdaki gibidir yardımcı olacak arkadaşlara şimdiden teşekkür ederim.
public partial class Form1 : Form { class DETAY { public string TARIH { get; set; } public string ISLEM { get; set; } public string TUTAR { get; set; } public string KARTNO { get; set; } } public Form1() { bindingSource1.DataSource = typeof(DETAY); this.gridControl1.DataSource = this.bindingSource1; InitializeComponent(); } private void simpleButton1_Click(object sender, EventArgs e) { StreamReader inputstream = new StreamReader("E:\\ocak\\TOPLU.TXT", Encoding.GetEncoding("windows-1254")); string s; s = inputstream.ReadLine(); int i = 0; while ((s = inputstream.ReadLine()) != null) { if (s.Substring(0, 1) == "H" & s.Substring(75, 3).Trim() == "30x") { gridView1.AddNewRow(); gridView1.SetRowCellValue(i,"TARIH", s.Substring(0, 1).Trim().ToString()); i = i + 1; } } inputstream.Close(); }
- Düzenleyen Umut Oğuz 26 Şubat 2016 Cuma 12:06
Yanıtlar
-
bindingSource1.DataSource = null; bindingSource1.DataSource = File.ReadAllLines("c:\\1.txt")
.Where(p=> p.StartsWith("H") && p.EndsWith("30x"))
.Select( p = new DETAY() { TARIH = p.SubString(1,8) , ISLEM = p.SubString(9,1), ..... }).ToList();
dediğim gibi; 2 satır.
e-mail: onay[nokta]yalciner[at]hotmail[nokta]com
- Düzenleyen Önay YALÇINERModerator 26 Şubat 2016 Cuma 12:32
- Yanıt Olarak İşaretleyen CetinBasozEditor 26 Şubat 2016 Cuma 15:24
Tüm Yanıtlar
-
Text dosya veritabani degildir. Texti veritabaniymis gibi kullanmaya calisacaginiza bir veritabanina yukleyin. En kolayi o olur.
Text dosyalar, farkli veritabanlari arasinda data aktarmak icin kullanilabilir ve cogunlukla CSV (Comma Separated Value), Delimited ve SDF (System Data Format - Fixed Width Data) seklindedirler. Yukaridaki kodlardan bunlardan hangisi oldugu, ya da herhangi birine uyup uymadigi belli degil.
Text dosyanizdan birkac satir verseydiniz daha faydali cevaplar alma sansiniz olurdu. Yukaridaki kodun amaci pek anlasilmadigindan soru da anlasilmiyor.
-
Siz gridView'i sanki kodla satır eklenen bir şeymiş gibi kullanamaya çalışmışsınız. Halbuki bindingSource'unuzu yenileseniz yetecek.
Dosyadaki tek satırı örnek olarak paylaşırsanız 1-2 satırla halledilir gibi görünüyor.
Çetin hocam; piyasada öyle işler var ki adam text dosyasına export almış, yapacak bişey yok, mecbur parse etmek gerekiyor.
e-mail: onay[nokta]yalciner[at]hotmail[nokta]com
- Düzenleyen Önay YALÇINERModerator 26 Şubat 2016 Cuma 12:02
-
H0000100100000600000547850160101133109000200000000000000110000000000000201694x
G00000000000000000000000000000000000000000000000000000000000000000000000099xxx
H0000100100000700000547011160101133402001400000000089850110001000000000201630x
B0000000000000000000000299500002222220002000002 xx
S0000000000000002173204180001010000000000000000059900000000010000000000000 06
E0000000005990000000100000012 021732 xxxxxxxxx
S0000000000000002173204180001010000000000000000059900000000010000000000000 06
E0000000005990000000100000012 021732 xxxxxxxxx
S0000000000000002036904180000500000000000000000012900001000010000000000000 05
E0000000001290000000100000012 020369 xxxxxxxxx
S0000000000000002173204180001010000000000000000059900001000010000000000000 06Text dosya içeriği yukarıdaki gibi zaten başka bir programın export ettiği format bunu tekrardan veritabanına aktarıp ordan gridviewe alıp rapor sunmaktansa burdan okumak daha mantıklı geldi zaten okuyorum bunu bunda bir sorunum yok ancak ilk butona click yapmamda bulduğu satır kadar boş satır atıyor ikinci clicklememde doğru verileri getiriyor ancak boş satırlarda kalıyor.
Dahada anlaşılabilir olsun amacım H ile başlayan ve 30x ile biten satırların içeriğini almak istiyorum .
- Düzenleyen Umut Oğuz 26 Şubat 2016 Cuma 12:11
-
bindingSource1.DataSource = null; bindingSource1.DataSource = File.ReadAllLines("c:\\1.txt")
.Where(p=> p.StartsWith("H") && p.EndsWith("30x"))
.Select( p = new DETAY() { TARIH = p.SubString(1,8) , ISLEM = p.SubString(9,1), ..... }).ToList();
dediğim gibi; 2 satır.
e-mail: onay[nokta]yalciner[at]hotmail[nokta]com
- Düzenleyen Önay YALÇINERModerator 26 Şubat 2016 Cuma 12:32
- Yanıt Olarak İşaretleyen CetinBasozEditor 26 Şubat 2016 Cuma 15:24
-