示例#1
0
        public static FSMNet <StructAtom <string>, StructAtom <string> > LoadNetFromFile()
        {
            FSMNet <StructAtom <string>, StructAtom <string> > result = null;

            try
            {
                OpenFileDialog ofd = new OpenFileDialog();
                ofd.Filter           = "xml-файл (*.xml)|*.xml";
                ofd.Multiselect      = false;
                ofd.RestoreDirectory = true;
                if (ofd.ShowDialog() == DialogResult.OK)
                {
                    var fi = new FileInfo(ofd.FileName);
                    if (fi.Extension == ".xml")
                    {
                        XmlDocument doc = new XmlDocument();
                        doc.Load(fi.FullName);
                        if (doc.ChildNodes.Count > 0)
                        {
                            var          rootNode = doc.ChildNodes[0];
                            NetXmlWorker w        = new NetXmlWorker();
                            if (rootNode.Name == w.NodeName)
                            {
                                w.ParseFromNode(rootNode);
                                result = w.value;
                            }
                            else
                            {
                                MessageBox.Show("Файл содержит некоррекные данные", "Загрузка сети",
                                                MessageBoxButtons.OK, MessageBoxIcon.Error);
                            }
                        }
                        else
                        {
                            MessageBox.Show("Файл пуст", "Загрузка сети",
                                            MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    }
                    else
                    {
                        MessageBox.Show("Файл должен иметь расширение .xml", "Загрузка сети",
                                        MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
            }
            catch (Exception exc)
            {
                result = null;
            }

            return(result);
        }
示例#2
0
        public static bool SaveNetToFile(FSMNet <StructAtom <string>, StructAtom <string> > net)
        {
            if (net == null)
            {
                throw new ArgumentNullException("net");
            }

            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();
                        NetXmlWorker w   = new NetXmlWorker(net);
                        doc.AppendChild(w.CreateXmlNode(doc));
                        doc.Save(fi.FullName);
                        result = true;
                    }
                    else
                    {
                        MessageBox.Show("Файл должен иметь расширение .xml", "Сохранение сети",
                                        MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
            }
            catch (Exception exc)
            {
                result = false;
            }

            return(result);
        }