Şimdi Ara

Text dosyasından istenen verileri çekip 2 ayrı listboxda listemek istiyorum

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
1 Misafir - 1 Masaüstü
5 sn
11
Cevap
0
Favori
447
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • 1 1 26017.770

    0 -4.9112979 410.4693101

    0 -3.6365224 410.1894836

    0 0.4500351 410.3161743

    0 3.9155980 409.1699524

    0 5.2604734 410.3972629 SAĞ

    1 2 26020.000

    0 -4.9799434 410.4674420 SOL

    0 -4.9409100 410.0774536

    0 -0.8472598 409.1788330

    0 0.4261363 409.1812134

    0 0.6297354 409.1988831

    0 1.8846615 409.1577148

    0 4.1917279 409.1658325

    0 5.4726924 410.3473910 SAĞ

    1 3 26030.000

    0 -5.0000960 410.4676211 SOL

    0 -4.8824235 409.4483337

    0 -3.8380276 409.4503784

    0 -0.3250690 409.3630371

    0 0.4818728 409.3080139

    0 1.5955057 409.2716064

    0 4.8345747 409.2607727 SAĞ



    Merhaba arkadaşlar;;

    Elimde, üstteki formatta giden ascii text dosyalarından oluşan dosyalar var. Yapmak istediğim şey

    yanında 1 olan satırlardaki ifadeleri 1.listboxta toplamak. (26017.770, 26020, 26030 şeklinde)

    1 listboxtaki bir değere tıkladığımda onun alt elemanlarını 2. listboxta görüntülemek istiyorum.


    Örneğin; 26017.770'e tıkladığım zaman 2. listede bu şekilde bir alt eleman görüntülemesi yapmak istiyorum

    -4.9112979,410.4693101

    -3.6365224,410.1894836

    0.4500351,410.3161743

    3.9155980,409.1699524

    5.2604734,410.3972629



    Kendin hangi aşamaya kadar gelebildin diye soracak olursanız, readline ile değişik denemeler yaptım fakat burada sıkıntım şu;

    elimdeki text dosyalarında okutacağım verilerin toplam sayısı sabit olsa ve okutmam gereken verilerin yeri her seferinde sabit olsa örneğin her seferinde 5.satırı okut gibi, iş benim gibi fazla tecrübeli olmayan biri için biraz daha kolay olacaktı. Ama burada herşeyin değişken olması biraz kafa karıştırıcı oldu benim için açıkçası

    Yapmak istediklerimi tam olarak ifade edemediysem bağışlayın, yapmak istediğime benzer bir çalışmanın videosunu buraya bırakıyorum. Cevaplarınız için şimdiden teşekker ederim.

    https://www.youtube.com/watch?v=MiSVzC8hsQk&t=121s








  • Programlama temel konuları olan döngüler ve diziler ile yapabileceğin birşey. Konuları tam anlamadan geçmemen lazım ki böyle basit işlemleri yapabilesin.
    List te kullanabilirsin tabi



    < Bu mesaj bu kişi tarafından değiştirildi OzMeN OzzY -- 6 Kasım 2021; 21:47:7 >
    < Bu ileti iOS uygulamasından atıldı >
  • Hocam oncelikle, cevabınız icin tesekkur ederim. Diziler ve donguler konusunu tamamlayalı epey oldu. Ama benim buradaki asıl sıkıntım text dosyasından sadece istenen verileri extract edebilmek.Onları listboxlar ile iliskilendirebilmek. Birkac guzel tuyo verebilirseniz bu konuda, sevinirim.

  • Şimdi en basitinden satır okumaya gelirsek ( hangi dizileri-döngüleri-listleri tamamladım diyorsun ya )


    Kod

    Yığını:
    List<string> satirlarList = new List<string>(); //Satırların list'e aktarıp daha sonra kullanmamız için yeni bir değişken tanımlıyoruz. using (StreamReader sr = new StreamReader("okunacakDosya.txt")) //StreamReader fonksiyonu ile okunacak dosyamızı açtırıyoruz. Burada enviroment sınıfını kulanabilirsin. { string satir; //burada okuduğunuz her satırı atamamız için gerekli değişkeni tanımlıyoruz. while ((satir = sr.ReadLine()) != null) //Döngü kurup eğer satır boş değilse, satirlarList Satır List'ine ekleme yapıyoruz. { satirlarList.Add(satir); listBox.Items.Add(satir); } }


    sonra satırın ilk dolu hanesi olan [0] veya [1] yada sende kacta ise if ile kontrol edersin 1 ise onu yeni bir dizi yada liste atarsın. Sonra bunları atacağın 2. listi bir listboxa atarsın ve onun kontrolü ile ilişkilendirilmiş verilerini baska bir listboxta gösterirsin.

    Yani Sen bana kızıyorsun ama benim sana kast ettiğim buydu gerçekten temel konular. Okumak bitirmek yada 2-3 örnek yapmak tam anlamak değilki önemli olan onu bir çok varyasyonla beraber kullanabilmek.





  • böyle bi şey mi?


    Text dosyasından istenen verileri çekip 2 ayrı listboxda listemek istiyorum


    Kod

    Yığını:
    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace darkfox {     public partial class Form1 : Form     {         public Form1()         {             InitializeComponent();         }         private class DosyalarClass         {             public string DosyaAdi { get; set; }             public string DosyaYolu { get; set; }         }         private class DosyaIcerik1Class         {             public string id { get; set; }             public string deger { get; set; }         }         private class DosyaIcerik2Class         {             public string icerik_id { get; set; }             public string d1 { get; set; }             public string d2 { get; set; }             public string d3 { get; set; }         }         List<DosyaIcerik1Class> icerikListe1;         List<DosyaIcerik2Class> icerikListe2;         private void btnKlasorSec_Click(object sender, EventArgs e)         {             using (var fbd = new FolderBrowserDialog())             {                 fbd.SelectedPath = Application.StartupPath;                 DialogResult result = fbd.ShowDialog();                 if (result == DialogResult.OK && !string.IsNullOrWhiteSpace(fbd.SelectedPath))                 {                     var dosyalar = Directory.GetFiles(fbd.SelectedPath, "*.txt").Select(s=> new DosyalarClass { DosyaYolu = s, DosyaAdi = Path.GetFileName(s) }).ToList();                     if (dosyalar.Count()>0)                     {                         dgDosyaListesi.DataSource = new BindingSource(dosyalar,null);                     }                 }             }         }         private void DosyaOku(string yol)         {             icerikListe1 = new List<DosyaIcerik1Class>();             icerikListe2 = new List<DosyaIcerik2Class>();             string id = "";             var icerik = File.ReadAllLines(yol);             if (icerik.Count()>0)             {                 foreach (var i in icerik)                 {                     var cozumle = i.Split(' ').Select(p => p.Trim()).Where(p => !string.IsNullOrWhiteSpace(p)).ToArray();                     if (cozumle.Count()==3|| cozumle.Count() == 4)                     {                                                  if (cozumle[0]=="1")                         {                             id = cozumle[1];                             icerikListe1.Add(new DosyaIcerik1Class { id = id, deger = cozumle[2]});                         }                         else                         {                             if (cozumle.Count() == 3)                             {                                 icerikListe2.Add(new DosyaIcerik2Class { icerik_id = id, d1 = cozumle[1], d2 = cozumle[2], d3 = "" });                             }                             if (cozumle.Count() == 4)                             {                                 icerikListe2.Add(new DosyaIcerik2Class { icerik_id = id, d1 = cozumle[1], d2 = cozumle[2], d3 = cozumle[3] });                             }                                                      }                     }                 }             }             richTextBox1.Text = File.ReadAllText(yol);             if (icerikListe1.Count>0)             {                 dgListe1.Visible = false;                 dgListe1.DataSource = new BindingSource(icerikListe1, null);                 dgListe1.Visible = true;             }         }         private void dgDosyaListesi_CellEnter(object sender, DataGridViewCellEventArgs e)         {             if (dgDosyaListesi.Rows[e.RowIndex].Cells["DosyaYolu"].Value!=null)             {                 DosyaOku(dgDosyaListesi.Rows[e.RowIndex].Cells["DosyaYolu"].Value.ToString());             }         }         private void dgListe1_CellEnter(object sender, DataGridViewCellEventArgs e)         {             if (dgListe1.Rows[e.RowIndex].Cells["id"].Value!=null&&icerikListe2.Count>0)             {                 dgListe2.Visible = false;                 dgListe2.DataSource = new BindingSource(icerikListe2.Where(w=>w.icerik_id== dgListe1.Rows[e.RowIndex].Cells["id"].Value.ToString()).ToList(), null);                 dgListe2.Visible = true;             }         }     } }




  • TROJ T kullanıcısına yanıt

    Cevabınız için teşekkür ederim hocam. Örnekte yollamış olduğum videoyu izleyebilirseniz eğer, tam olarak istediğim o aslında.

  • OzMeN OzzY kullanıcısına yanıt

    Yok hocam kimseye kızdığım filan. Maksat öğrenmek, daha tecrübeli insanların tecrübelerinden faydalanabilmek. Yani önceki mesajımda olay bu kadar basite indirgenmemeli gibisinden belirtmiştim.




    < Bu mesaj bu kişi tarafından değiştirildi DaRkFoX -- 9 Kasım 2021; 17:27:18 >
  • üstteki arkadaşın yazdığıyla videodaki benzer tek fark arkadaş datagride satır satır yazdırmış üstteki videoda textboxa ona göre düzenleme yapılabilir eğer tek fark buysa

  • TROJ T kullanıcısına yanıt

    Hocam işlerimin yoğunluğu dolayısıyla birkaç hafta bakamadım C# projeme. Verdiğiniz öneri gerçekten çok işime yaradı, teşekkür ederim.


    Bu tabloda okuduğumuz verileri, daha onceden kolonlarını olusturmus oldugum SQL tablosuna atabilmenin kolay bir yolu var mıdır peki?

  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.