/// <summary> /// Creates Xml Element from strings /// </summary> /// <param name="text">The strings</param> /// <param name="bRow">The begin row</param> /// <param name="bColumn">The begin column</param> /// <param name="eRow">The end row</param> /// <param name="eColumn">The end column</param> /// <returns>Created Xml Element</returns> protected override XElement[] CreateElements(IList <string> text, int bRow, int bColumn, int eRow, int eColumn) { int bb = bRow; int bc = bColumn; int brf; int bcf; IXmlElementCreator creator = this; List <XElement> l = new List <XElement>(); while (true) { try { FindNext(text, bb, bc, out brf, out bcf); XElement e = creator.Create(text, bb, bc, brf, bcf); if (e == null) { break; } l.Add(e); StaticExtensionXmlParserLibrary.FindNext(text, openString, true, brf, bcf, out bb, out bc); } catch (Exception ex) { ex.ShowError(10); break; } } return(l.ToArray()); }
/// <summary> /// Creates Xml Element from strings /// </summary> /// <param name="text">The strings</param> /// <param name="bRow">The begin row</param> /// <param name="bColumn">The begin column</param> /// <param name="eRow">The end row</param> /// <param name="eColumn">The end column</param> /// <returns>Created Xml Element</returns> protected override XElement CreateInternal(IList <string> text, int bRow, int bColumn, int eRow, int eColumn) { List <int> l = null; if (dic.ContainsKey(bRow)) { l = dic[bRow]; } else { l = new List <int>(); dic[bRow] = l; } if (l.Contains(eRow)) { return(null); } l.Add(eRow); int bbRow = bRow; int bbColumn = bColumn; int eeRow; int eeColumn; XElement element = creator.Create(text, bRow, bColumn, eRow, eColumn); if (element == null) { return(null); } while (true) { string s = StaticExtensionXmlParserLibrary.FindNext(text, openString, false, bbRow, bbColumn, out eeRow, out eeColumn); if (s == null) { return(element); } if (eeRow >= eRow) { break; } bbRow = eeRow; bbColumn = eeColumn; FindNextClose(text, openString, closeString, true, bbRow, bbColumn, out eeRow, out eeColumn); XElement e = This.Create(text, bbRow, bbColumn, eeRow, eeColumn); if (e != null) { element.Add(e); } bbRow = eeRow; bbColumn = eeColumn; endRow = eeRow; endColumn = eeColumn; } return(element); }
new void Load(string filename) { try { List <string> la = StaticExtensionXmlParserLibrary.TransformFile(filename) as List <string>; List <string> l = new List <string>(); for (int ns = 0; ns < la.Count; ns++) { string s = la[ns]; int p = 0; for (int k = ns + 1; k < la.Count; k++) { string ss = la[k]; if (ss.Length == 0) { break; } if (ss[0] != '\"') { break; } s = s.Substring(0, s.Length - 1) + ss.Substring(1); ++p; } ns += p; l.Add(s); } to.Text = l; if (ucproxy != null) { ucproxy.Fill(); } Perform(() => cont.Interface.Clear()); UpdateAll(); saveFileDialog.FileName = filename; } catch (Exception e) { WindowsExtensions.ControlExtensions.ShowMessageBoxModal(this, e.Message); } }
/// <summary> /// Constructor from element /// </summary> /// <param name="element">The element</param> /// <param name="system">Parent system</param> /// <param name="creator">Creation interface</param> public SimulinkSubsystem(XElement element, SimulinkSubsystem system, IBlockCodeCreator creator) : base(element, system) { XElement e = null; XElement[] children = StaticExtensionXmlParserLibrary.GetChildren(element); foreach (XElement child in children) { if (child.Name.Equals(SimulinkXmlParser.SystemStr)) { e = child; } } Create(e); if (system == null) { SetArrows(creator); } CreateConst(); }
/// <summary> /// Creates document from list of strings /// </summary> /// <param name="text">List of strings</param> /// <returns>The document</returns> public static XElement Create(IList <string> text) { XElement doc = XElement.Parse("<Root/>"); int nr = text.Count - 1; int nc = text[nr].Length; --nc; int eRow; int eColumn; SimulinkXmlParser parser = new SimulinkXmlParser(doc); IXmlElementCreator creator = parser; StaticExtensionXmlParserLibrary.FindNext(text, '{', false, 0, 0, out eRow, out eColumn); XElement[] elements = parser.Create(text, eRow, eColumn, nr, nc); foreach (XElement e in elements) { doc.Add(e); } return(parser.doc); }
IList <string> CreateTransfer(Block block, int num) { List <string> l = new List <string>(); IAttribute a = block; string[] nom = StaticExtensionXmlParserLibrary.Parse("[", "]", " ,".ToCharArray(), a["Numerator"]); string[] den = StaticExtensionXmlParserLibrary.Parse("[", "]", " ,".ToCharArray(), a["Denominator"]); int ord = block.Order; string inp = GetFirstIn(block); int count = den.Length; for (int i = 0; i < count - 2; i++) { int j = i + ord; l.Add(derivation + "[" + j + "] = state[" + (j + 1) + "];"); } string bn = "block_" + num; string ss = "double " + bn + " = " + inp; StringBuilder sb = new StringBuilder(ss); for (int i = 0; i < count - 1; i++) { sb.Append(" - ((" + den[i] + ") * state[" + (ord + i) + "])"); } sb.Append(";"); l.Add(sb.ToString()); l.Add(derivation + "[" + (ord + den.Length - 2) + "] = " + bn + ";"); sb = new StringBuilder(GetFirstOut(block) + " = "); for (int i = 0; i < nom.Length; i++) { sb.Append("+ ((" + nom[i] + ") * state[" + (ord + i) + "])"); } sb.Append(";"); l.Add(sb.ToString()); return(l); }
/// <summary> /// Creates object from file /// </summary> /// <param name="filename">Filename</param> /// <returns>Created object</returns> public static SimulinkDrawing FromFile(string filename) { XElement doc = SimulinkXmlParser.Create(StaticExtensionXmlParserLibrary.TransformFile(filename)); return(new SimulinkDrawing(doc)); }
/// <summary> /// Finds next close string /// </summary> /// <param name="text">List of strings</param> /// <param name="openString">Open string</param> /// <param name="closeString">Close string</param> /// <param name="beg">The "begin" sign</param> /// <param name="bRow">Rebin row</param> /// <param name="bColumn">Begin column</param> /// <param name="eRow">End row</param> /// <param name="eColumn">End column</param> protected virtual void FindNextClose(IList <string> text, string openString, string closeString, bool beg, int bRow, int bColumn, out int eRow, out int eColumn) { StaticExtensionXmlParserLibrary.FindNextClose(text, openString, closeString, true, bRow, bColumn, out eRow, out eColumn); }
/// <summary> /// Gets children of Xml element /// </summary> /// <param name="element">The element</param> /// <returns>The children</returns> public static XElement[] GetChildren(XElement element) { return(StaticExtensionXmlParserLibrary.GetChildren(element)); }
/// <summary> /// Parses string array from string /// </summary> /// <param name="s">The string</param> /// <returns>The array</returns> static public string[] ParseString(string s) { return(StaticExtensionXmlParserLibrary.Parse("[", "]", " ,".ToCharArray(), s)); }
/// <summary> /// Parses double array from string /// </summary> /// <param name="s">The string</param> /// <returns>The array</returns> public static double[] ParseDouble(string s) { //IFormatProvider return(StaticExtensionXmlParserLibrary.ParseDouble("[", "]", " ,".ToCharArray(), s, System.Globalization.NumberStyles.Float, System.Globalization.CultureInfo.InvariantCulture.NumberFormat)); }
/// <summary> /// Parses int array from string /// </summary> /// <param name="s">The string</param> /// <returns>The array</returns> public static int[] ParseInt(string s) { return(StaticExtensionXmlParserLibrary.ParseInt("[", "]", " ,".ToCharArray(), s)); }