public override KnowledgeBase Load() { string Content = (new StreamReader(FileName, Encoding.Default)).ReadToEnd(); char[] sep1 = { '#' }; char[] sep2 = { '\n', '\r' }; string[] sep3 = { ":-" }; string[] Knowledges = Content.Split(sep1, StringSplitOptions.RemoveEmptyEntries); string[] Facts = Knowledges[0].Split(sep2, StringSplitOptions.RemoveEmptyEntries); string[] Rules = Knowledges[1].Split(sep2, StringSplitOptions.RemoveEmptyEntries); string[] OneRule; KnowledgeBase KB = new KnowledgeBase(); foreach (string StrFact in Facts) { KB.AddFact(Translator.StringToFact(StrFact)); } foreach (string StrRule in Rules) { OneRule = StrRule.Split(sep3, StringSplitOptions.RemoveEmptyEntries); KB.AddRule(Translator.StringsToRule(OneRule[0], OneRule[1])); } return(KB); }
private void AddFact() { try { KB.AddFact(Translator.StringToFact(tbFact.Text)); AddExpressionToListView(lvFactBase, KB.BaseOfFacts[KB.BaseOfFacts.Count - 1].Value); lvFactBase.Refresh(); tbFact.Clear(); } catch (Exception Exc) { MessageBox.Show(Exc.Message, "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error); } }