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"); } } } }
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."); } }
//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); }