// wczytywanie faktów z arkusza public static ArrayList CzytajFakty() { // połączenie z arkuszem i pobranie danych do "DataSet" - ds ArrayList listaFaktow = new ArrayList(); OleDbConnection objConn = new OleDbConnection(ConnectionString); ds.Clear(); objConn.Open(); string strConString = "SELECT * from [Arkusz2$]"; OleDbCommand objCmdSelect2 = new OleDbCommand(strConString, objConn); OleDbDataAdapter objAdapter2 = new OleDbDataAdapter(); objAdapter2.SelectCommand = objCmdSelect2; objAdapter2.Fill(ds, "_fakt"); objConn.Close(); // przepisanie danych z "DataSet" - ds do ArrayList listaFaktow for (int i = 1; i <= ds.Tables["_fakt"].Rows.Count; i++) { int _id = Convert.ToInt32(ds.Tables["_fakt"].Rows[i - 1][0]); string _fact = ds.Tables["_fakt"].Rows[i - 1][1].ToString(); int _log = Convert.ToInt32(ds.Tables["_fakt"].Rows[i - 1][2]); Fakty fakt = new Fakty(_id, _fact, _log); listaFaktow.Add(fakt); } LiczbaFaktow = ds.Tables["_fakt"].Rows.Count; return(listaFaktow); }
private void Wnioskowanie_Load(object sender, EventArgs e) { // wczytujemy fakty this._fakty = Repozytorium.CzytajFakty(); // listę faktów zmieniamy na tablicę // wczytujemy reguły this._reguly = Repozytorium.CzytajReguly(); tablicaFaktow = (Fakty[])_fakty.ToArray(typeof(Fakty)); Boolean nowe = true; // działamy póty, póki pojawiają się nowe fakty while (nowe) { ArrayList NoweFakty = new ArrayList(); // w tej wersji nie będzie nowych faktów nowe = false; foreach (Reguly regula in _reguly) { Fakty konkluzja = tablicaFaktow[regula.Conc]; int wniosek = 0; if (konkluzja.Log != 1) { wniosek = Wnioskuj(regula); konkluzja.Log = wniosek; } if (wniosek == 1) { nowe = true; NoweFakty.Add(konkluzja); } tablicaFaktow[regula.Conc] = konkluzja; //Repozytorium.Zapisz(konkluzja.Id, konkluzja.Log); } wypisz_fakty(NoweFakty); } }