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