コード例 #1
0
ファイル: FSMXmlWorker.cs プロジェクト: erad888/fsm-decompose
        public XmlNode CreateXmlNode(XmlDocument doc, string nodeName)
        {
            if (value == null)
            {
                throw new NullReferenceException();
            }

            XmlNode result = doc.CreateElement(nodeName);

            XmlElement element = doc.CreateElement("StateSet");

            foreach (var state in value.StateSet)
            {
                StateXmlWorker worker = new StateXmlWorker(state);
                element.AppendChild(worker.CreateXmlNode(doc));
            }
            result.AppendChild(element);

            element = doc.CreateElement("InputSet");
            foreach (var input in value.InputSet)
            {
                StructAtomStringXmlWorker worker = new StructAtomStringXmlWorker(input);
                element.AppendChild(worker.CreateXmlNode(doc, "Input"));
            }
            result.AppendChild(element);

            element = doc.CreateElement("OutputSet");
            foreach (var output in value.OutputSet)
            {
                StructAtomStringXmlWorker worker = new StructAtomStringXmlWorker(output);
                element.AppendChild(worker.CreateXmlNode(doc, "Output"));
            }
            result.AppendChild(element);

            element           = doc.CreateElement("KeyName");
            element.InnerText = value.KeyName;
            result.AppendChild(element);

            StateXmlWorker w = new StateXmlWorker(value.InitialState);

            result.AppendChild(w.CreateXmlNode(doc, "InitialState"));

            element = doc.CreateElement("Transitions");
            foreach (var transition in value.Transitions.Values)
            {
                TransitionXmlWorker worker = new TransitionXmlWorker(transition);
                element.AppendChild(worker.CreateXmlNode(doc));
            }
            result.AppendChild(element);

            return(result);
        }
コード例 #2
0
        public static bool SaveInputSeqToFile(IEnumerable <StructAtom <string> > inputs)
        {
            bool result = false;

            try
            {
                var sfd = new SaveFileDialog();
                sfd.Filter = "xml-файл (*.xml)|*.xml";
                if (sfd.ShowDialog() == DialogResult.OK)
                {
                    var fi = new FileInfo(sfd.FileName);
                    if (fi.Extension == ".xml")
                    {
                        XmlDocument doc      = new XmlDocument();
                        XmlNode     rootNode = doc.CreateElement("InputSequence");
                        foreach (var input in inputs)
                        {
                            StructAtomStringXmlWorker w = new StructAtomStringXmlWorker(input);
                            rootNode.AppendChild(w.CreateXmlNode(doc));
                        }
                        doc.AppendChild(rootNode);
                        doc.Save(fi.FullName);
                        result = true;
                    }
                    else
                    {
                        MessageBox.Show("Файл должен иметь расширение .xml", "Сохранение входной последовательности",
                                        MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
            }
            catch (Exception exc)
            {
                result = false;
            }

            return(result);
        }