public static void WriteStringsToStreamAsXml(StreamWriter sw, Hashtable Strings, AdvancedOptions adv_opt) { XmlWriterSettings xwr = new XmlWriterSettings(); xwr.Indent = true; xwr.OmitXmlDeclaration = false; xwr.Encoding = sw.Encoding; xwr.CloseOutput = true; XmlWriter writer = XmlWriter.Create(sw.BaseStream,xwr); //writer.WriteStartElement("options"); writer.WriteStartElement("general_options"); foreach (string key in Strings.Keys) { writer.WriteStartElement("option"); writer.WriteAttributeString("name",key); writer.WriteString(Convert.ToString(Strings[key])); writer.WriteEndElement(); } writer.WriteEndElement(); /*writer.WriteStartElement("advanced_options"); writer.WriteStartElement("open_files"); foreach (SourceFileInfo fi in adv_opt.open_files) { writer.WriteStartElement("open_file"); writer.WriteAttributeString("name",fi.FileName); writer.WriteAttributeString("line",Convert.ToString(fi.Line.ToString())); writer.WriteAttributeString("column",Convert.ToString(fi.Column.ToString())); writer.WriteEndElement(); } writer.WriteEndElement(); writer.WriteStartElement("watch_list"); foreach (string s in adv_opt.watch_list) { writer.WriteStartElement("watch_expr"); writer.WriteAttributeString("expr",s); writer.WriteEndElement(); } writer.WriteEndElement(); writer.WriteStartElement("breakpoints_list"); foreach (BreakpointInfo br in adv_opt.breakpoints) { writer.WriteStartElement("breakpoint"); writer.WriteAttributeString("file_name",br.FileName); writer.WriteAttributeString("line",br.Line.ToString()); writer.WriteAttributeString("is_conditional",br.IsConditional.ToString()); writer.WriteAttributeString("expression",br.Expression); writer.WriteAttributeString("concrete_condition",br.ConcreteCondition.ToString()); writer.WriteEndElement(); } writer.WriteEndElement(); writer.WriteStartElement("bookmarks_list"); foreach (BookmarkInfo br in adv_opt.bookmarks) { writer.WriteStartElement("bookmark"); writer.WriteAttributeString("file_name",br.FileName); writer.WriteAttributeString("line",br.Line.ToString()); writer.WriteEndElement(); } writer.WriteEndElement(); writer.WriteEndElement(); writer.WriteEndElement();*/ writer.Close(); }
public static void WriteStringsToStreamAsXml(StreamWriter sw, Hashtable Strings, AdvancedOptions adv_opt) { XmlWriterSettings xwr = new XmlWriterSettings(); xwr.Indent = true; xwr.OmitXmlDeclaration = false; xwr.Encoding = sw.Encoding; xwr.CloseOutput = true; XmlWriter writer = XmlWriter.Create(sw.BaseStream, xwr); //writer.WriteStartElement("options"); writer.WriteStartElement("general_options"); foreach (string key in Strings.Keys) { writer.WriteStartElement("option"); writer.WriteAttributeString("name", key); writer.WriteString(Convert.ToString(Strings[key])); writer.WriteEndElement(); } writer.WriteEndElement(); /*writer.WriteStartElement("advanced_options"); * writer.WriteStartElement("open_files"); * foreach (SourceFileInfo fi in adv_opt.open_files) * { * writer.WriteStartElement("open_file"); * writer.WriteAttributeString("name",fi.FileName); * writer.WriteAttributeString("line",Convert.ToString(fi.Line.ToString())); * writer.WriteAttributeString("column",Convert.ToString(fi.Column.ToString())); * writer.WriteEndElement(); * } * writer.WriteEndElement(); * * writer.WriteStartElement("watch_list"); * foreach (string s in adv_opt.watch_list) * { * writer.WriteStartElement("watch_expr"); * writer.WriteAttributeString("expr",s); * writer.WriteEndElement(); * } * writer.WriteEndElement(); * * writer.WriteStartElement("breakpoints_list"); * foreach (BreakpointInfo br in adv_opt.breakpoints) * { * writer.WriteStartElement("breakpoint"); * writer.WriteAttributeString("file_name",br.FileName); * writer.WriteAttributeString("line",br.Line.ToString()); * writer.WriteAttributeString("is_conditional",br.IsConditional.ToString()); * writer.WriteAttributeString("expression",br.Expression); * writer.WriteAttributeString("concrete_condition",br.ConcreteCondition.ToString()); * writer.WriteEndElement(); * } * writer.WriteEndElement(); * * writer.WriteStartElement("bookmarks_list"); * foreach (BookmarkInfo br in adv_opt.bookmarks) * { * writer.WriteStartElement("bookmark"); * writer.WriteAttributeString("file_name",br.FileName); * writer.WriteAttributeString("line",br.Line.ToString()); * writer.WriteEndElement(); * } * writer.WriteEndElement(); * writer.WriteEndElement(); * writer.WriteEndElement();*/ writer.Close(); }
public static void ReadStringsFromStreamAsXml(string FileName, StreamReader sr, Hashtable Strings, AdvancedOptions adv_opt) { XmlReaderSettings xrs = new XmlReaderSettings(); //xrs.IgnoreWhitespace = true; xrs.CloseInput = true; XmlReader reader = XmlTextReader.Create(new StreamReader(FileName,System.Text.Encoding.UTF8),xrs); try { reader.Read(); } catch { System.Text.Encoding enc = sr.CurrentEncoding; reader.Close(); sr.Close(); ReadStringsFromStream(new StreamReader(FileName,enc),Strings); return; } //reader.ReadStartElement("options"); reader.ReadStartElement("general_options"); string prefix = ""; while (reader.ReadToNextSibling("option")) { string option_name = reader.GetAttribute("name"); string option_value = reader.ReadString(); if (option_name == "%PREFIX%") prefix = option_value; else { Strings[prefix + option_name] = option_value; } } reader.ReadEndElement(); /*reader.ReadEndElement(); if (!reader.EOF) { reader.ReadStartElement("advanced_options"); if (!reader.IsEmptyElement) { reader.ReadStartElement("open_files"); while (reader.ReadToNextSibling("open_file")) { adv_opt.open_files.Add(new SourceFileInfo(reader.GetAttribute("file_name"), Convert.ToInt32(reader.GetAttribute("line")),Convert.ToInt32(reader.GetAttribute("column")))); } reader.ReadEndElement(); } else reader.ReadStartElement("open_files"); reader.ReadStartElement("watch_list"); if (!reader.IsEmptyElement) { while (reader.ReadToNextSibling("watch_expr")) { adv_opt.watch_list.Add(reader.GetAttribute("expr")); } reader.ReadEndElement(); } reader.ReadStartElement("breakpoints_list"); if (!reader.IsEmptyElement) { while (reader.ReadToNextSibling("breakpoint")) { adv_opt.breakpoints.Add(new BreakpointInfo(reader.GetAttribute("file_name"), Convert.ToInt32(reader.GetAttribute("line")),Convert.ToBoolean(reader.GetAttribute("is_conditional")), reader.GetAttribute("expression"),Convert.ToInt32(reader.GetAttribute("concrete_condition")))); } reader.ReadEndElement(); } if (!reader.IsEmptyElement) { reader.ReadStartElement("bookmarks_list"); while (reader.ReadToNextSibling("bookmark")) { adv_opt.bookmarks.Add(new BookmarkInfo(reader.GetAttribute("file_name"), Convert.ToInt32(reader.GetAttribute("line")))); } reader.ReadEndElement(); } reader.ReadEndElement(); } reader.ReadEndElement();*/ reader.Close(); sr.Close(); }
public static void ReadStringsFromStreamAsXml(string FileName, StreamReader sr, Hashtable Strings, AdvancedOptions adv_opt) { XmlReaderSettings xrs = new XmlReaderSettings(); //xrs.IgnoreWhitespace = true; xrs.CloseInput = true; XmlReader reader = XmlTextReader.Create(new StreamReader(FileName, System.Text.Encoding.UTF8), xrs); try { reader.Read(); } catch { System.Text.Encoding enc = sr.CurrentEncoding; reader.Close(); sr.Close(); ReadStringsFromStream(new StreamReader(FileName, enc), Strings); return; } //reader.ReadStartElement("options"); reader.ReadStartElement("general_options"); string prefix = ""; while (reader.ReadToNextSibling("option")) { string option_name = reader.GetAttribute("name"); string option_value = reader.ReadString(); if (option_name == "%PREFIX%") { prefix = option_value; } else { Strings[prefix + option_name] = option_value; } } reader.ReadEndElement(); /*reader.ReadEndElement(); * if (!reader.EOF) * { * reader.ReadStartElement("advanced_options"); * if (!reader.IsEmptyElement) * { * reader.ReadStartElement("open_files"); * while (reader.ReadToNextSibling("open_file")) * { * adv_opt.open_files.Add(new SourceFileInfo(reader.GetAttribute("file_name"), * Convert.ToInt32(reader.GetAttribute("line")),Convert.ToInt32(reader.GetAttribute("column")))); * * } * reader.ReadEndElement(); * } * else * reader.ReadStartElement("open_files"); * reader.ReadStartElement("watch_list"); * if (!reader.IsEmptyElement) * { * * while (reader.ReadToNextSibling("watch_expr")) * { * adv_opt.watch_list.Add(reader.GetAttribute("expr")); * } * reader.ReadEndElement(); * } * reader.ReadStartElement("breakpoints_list"); * if (!reader.IsEmptyElement) * { * * while (reader.ReadToNextSibling("breakpoint")) * { * adv_opt.breakpoints.Add(new BreakpointInfo(reader.GetAttribute("file_name"), * Convert.ToInt32(reader.GetAttribute("line")),Convert.ToBoolean(reader.GetAttribute("is_conditional")), * reader.GetAttribute("expression"),Convert.ToInt32(reader.GetAttribute("concrete_condition")))); * * } * reader.ReadEndElement(); * } * if (!reader.IsEmptyElement) * { * reader.ReadStartElement("bookmarks_list"); * while (reader.ReadToNextSibling("bookmark")) * { * adv_opt.bookmarks.Add(new BookmarkInfo(reader.GetAttribute("file_name"), * Convert.ToInt32(reader.GetAttribute("line")))); * * } * reader.ReadEndElement(); * } * reader.ReadEndElement(); * } * reader.ReadEndElement();*/ reader.Close(); sr.Close(); }