// 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);
        }
Пример #2
0
        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);
            }
        }