Пример #1
0
        private void btnDosyaYaz_Click(object sender, EventArgs e)
        {
            DialogResult   dr;
            DosyaIslemleri di = new DosyaIslemleri();

            if (di.TXTYaz(false, Sonuclar, dosya_yolu))
            {
                MessageBox.Show("Kurallar dosyaya yazdırıldı.");
            }
            else
            {
                dr = MessageBox.Show("Aynı isimde sonuç dosyası var, üzerine yazdırmak ister misiniz ?", "Dikkat", MessageBoxButtons.YesNo);
                if (dr == DialogResult.Yes)
                {
                    if (di.TXTYaz(true, Sonuclar, dosya_yolu))
                    {
                        MessageBox.Show("Kurallar dosyaya yazdırıldı.");
                    }
                    else
                    {
                        MessageBox.Show("Bilinmeyen Hata");
                    }
                }
            }
        }
Пример #2
0
 private void btnDosya_Click(object sender, EventArgs e)
 {
     if (DosyaYolu())
     {
         DosyaIslemleri di = new DosyaIslemleri();
         baslik  = di.BasligiCek(dosya_yolu);
         veriler = di.VerileriCek(dosya_yolu);
         DataGridViewOlustur(veriler);
         btnAra.Visible   = true;
         btnDosya.Enabled = false;
     }
     else
     {
         MessageBox.Show("Dosya alırken hata oluştu.");
     }
 }
Пример #3
0
        //missing valuelara verilerin oranlarına göre atama yapmak
        public List <List <string> > VeriDuzenleme(string dosya_yolu)
        {
            DosyaIslemleri               di             = new DosyaIslemleri();
            List <List <string> >        gelenler       = di.VerileriCek(dosya_yolu);
            List <string>                baslik         = di.BasligiCek(dosya_yolu);
            Dictionary <string, decimal> kelimeOranları = new Dictionary <string, decimal>();
            List <ij>     sayilar  = new List <ij>();
            List <string> yazilar  = new List <string>();
            List <ij>     kayiplar = new List <ij>();
            string        temp;
            bool          strorint = false, flag = false;//flag false string ,flag true int

            for (int j = 0; j < baslik.Count; j++)
            {
                flag = false;
                sayilar.Clear();
                yazilar.Clear();
                kayiplar.Clear();
                for (int i = 0; i < gelenler.Count; i++)
                {
                    temp     = gelenler[i][j];
                    strorint = decimal.TryParse(temp, out decimal veri);

                    if (strorint)
                    {
                        yazilar.Add(temp);
                        sayilar.Add(new ij(i, veri));
                        flag = true;
                    }
                    else if (temp == "?")
                    {
                        kayiplar.Add(new ij(i, j));
                    }
                    else
                    {
                        yazilar.Add(temp);
                        flag = false;
                    }
                }

                if (flag)
                {
                    //düzenle
                    decimal ort = Ortalama(sayilar);
                    foreach (var item in kayiplar)
                    {
                        gelenler[(int)item.i][(int)item.j] = ((int)ort).ToString();
                    }
                }
                else
                {
                    //nomimnal verileri oranlı tamamlama
                    decimal toplam = 0;
                    int     basla  = 0;
                    kelimeOranları = OransalTamamlama(yazilar);
                    foreach (KeyValuePair <string, decimal> oran in kelimeOranları)
                    {
                        toplam += kayiplar.Count * oran.Value;
                        for (int k = basla; k < kayiplar.Count; k++)
                        {
                            if (k > toplam)
                            {
                                basla = k;
                                break;
                            }
                            else
                            {
                                gelenler[(int)kayiplar[k].i][(int)kayiplar[k].j] = oran.Key;
                            }
                        }
                    }

                    //farklı kolonlarda aynı verileri gelmesini engellemek için
                    for (int k = 0; k < gelenler.Count; k++)
                    {
                        gelenler[k][j] = baslik[j] + " = " + gelenler[k][j];
                    }
                }
            }
            VeriDuzenleme(baslik, gelenler);

            sayilar.Clear();
            yazilar.Clear();
            kayiplar.Clear();
            kelimeOranları.Clear();
            return(gelenler);
        }