// wczytywanie reguł z arkusza
        public static ArrayList CzytajReguly()
        {
            // połączenie z arkuszem i pobranie danych do "DataSet" - ds
            OleDbConnection objConn = new OleDbConnection(ConnectionString);

            ds.Clear();
            objConn.Open();
            String           strConString = "SELECT * from [Arkusz1$]";
            OleDbCommand     objCmdSelect = new OleDbCommand(strConString, objConn);
            OleDbDataAdapter objAdapter1  = new OleDbDataAdapter();

            objAdapter1.SelectCommand = objCmdSelect;
            objAdapter1.Fill(ds, "Reguly");
            objConn.Close();
            // przepisanie danych z "DataSet" - ds do ArrayList listaRegul
            ArrayList listaRegul = new ArrayList();
            int       k          = 0;
            // pierwsza reguła
            int numer        = Convert.ToInt32(ds.Tables["Reguly"].Rows[k][0]);
            int l_przeslanek = Convert.ToInt32(ds.Tables["Reguly"].Rows[k][1]);
            int konkl        = Convert.ToInt32(ds.Tables["Reguly"].Rows[k][3]);

            int[] przeslanki = new int[10];
            przeslanki[0] = Convert.ToInt32(ds.Tables["Reguly"].Rows[k][2]);
            k++;
            for (int j = 1; j < l_przeslanek; j++)
            {
                przeslanki[j] = Convert.ToInt32(ds.Tables["Reguly"].Rows[k][2]);
                k++;
            }
            bool   ver    = false;
            Reguly regula = new Reguly(numer, l_przeslanek, przeslanki, konkl, ver);

            listaRegul.Add(regula);
            // kolejne reguły
            int l = 1;

            while (k < ds.Tables["Reguly"].Rows.Count)

            {
                numer        = Convert.ToInt32(ds.Tables["Reguly"].Rows[k][0]);
                l_przeslanek = Convert.ToInt32(ds.Tables["Reguly"].Rows[k][1]);
                konkl        = Convert.ToInt32(ds.Tables["Reguly"].Rows[k][3]);
                int[] przeslanki1 = new int[10];
                przeslanki1[0] = Convert.ToInt32(ds.Tables["Reguly"].Rows[k][2]);
                int gg = k + l_przeslanek;
                k++;
                l = 1;
                for (int j = k; j < gg; j++)
                {
                    przeslanki1[l] = Convert.ToInt32(ds.Tables["Reguly"].Rows[j][2]);
                    l++;
                    k++;
                }
                Reguly regula1 = new Reguly(numer, l_przeslanek, przeslanki1, konkl, ver);
                listaRegul.Add(regula1);
            }
            return(listaRegul);
        }
Exemplo n.º 2
0
        private int Wnioskuj(Reguly regula)
        {
            Fakty przeslanka;

            for (int i = 0; i < regula.Preno; i++)
            {
                przeslanka = tablicaFaktow[regula.Precondition[i]];
                if (przeslanka.Log != 1)
                {
                    return(0);
                }
            }
            return(1);
        }