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