/// <summary> /// Parses a string containing valid ini data /// </summary> /// <param Name="iniDataString"> /// String with data /// </param> /// <returns> /// An <see cref="IniData"/> instance with the data contained in /// the <paramref Name="iniDataString"/> correctly parsed an structured. /// </returns> /// <exception cref="ParsingException"> /// Thrown if the data could not be parsed /// </exception> public IniData Parse(string iniDataString) { IniData iniData = new IniData(); iniData.Configuration = this.Configuration.Clone(); if (string.IsNullOrEmpty(iniDataString)) { return(iniData); } _currentCommentListTemp.Clear(); _currentSectionNameTemp = null; try { foreach (var line in iniDataString.Split(Environment.NewLine.ToCharArray(), StringSplitOptions.RemoveEmptyEntries)) { ProcessLine(line, iniData); } } catch { if (Configuration.ThrowExceptionsOnError) { throw; } return(null); } return((IniData)iniData.Clone()); }
private static void save() { var parser = new FileIniDataParser(); IniData dataTmp = (IniData)defaultData.Clone(); dataTmp.Merge(data); parser.WriteFile("config.ini", data); }
/// <summary> /// Parses a string containing valid ini data /// </summary> /// <param name="iniDataString"> /// String with data /// </param> /// <returns> /// An <see cref="IniData"/> instance with the data contained in /// the <paramref name="iniDataString"/> correctly parsed an structured. /// </returns> /// <exception cref="ParsingException"> /// Thrown if the data could not be parsed /// </exception> public IniData Parse(string iniDataString) { IniData iniData = new IniData(); iniData.Configuration = this.Configuration.Clone(); if (string.IsNullOrEmpty(iniDataString)) { return(iniData); } _currentCommentListTemp.Clear(); _currentSectionNameTemp = null; try { var lines = iniDataString.Split(Environment.NewLine.ToCharArray(), StringSplitOptions.RemoveEmptyEntries); foreach (var line in lines) { ProcessLine(line, iniData); } // Orphan comments, assing to last section/key value if (_currentCommentListTemp.Count > 0) { // Check if there are actually sections in the file if (iniData.Sections.Count > 0) { iniData.Sections.GetSectionData(_currentSectionNameTemp).TrailingComments .AddRange(_currentCommentListTemp); } // No sections, put the comment in the last key value pair // but only if the ini file contains at least one key-value pair else if (iniData.Global.Count > 0) { iniData.Global.GetLast().Comments .AddRange(_currentCommentListTemp); } _currentCommentListTemp.Clear(); } } catch { if (Configuration.ThrowExceptionsOnError) { throw; } return(null); } return((IniData)iniData.Clone()); }
private void SetPortConfig(JToken portConfig, IniData synoConfig) { PortConfig = portConfig == null ? null : portConfig.DeepClone(); SynoConfig = synoConfig == null ? null : synoConfig.Clone() as IniData; checkBoxPortConfig.Checked = portConfig != null; panelPortConfig.Visible = portConfig != null; buttonAdvanced.Enabled = portConfig != null; DisplayPortConfig(); }
/// <summary> /// Parses a string containing valid ini data /// </summary> /// <param name="iniDataString"> /// String with data /// </param> /// <returns> /// An <see cref="IniData"/> instance with the data contained in /// the <paramref name="iniDataString"/> correctly parsed an structured. /// </returns> /// <exception cref="ParsingException"> /// Thrown if the data could not be parsed /// </exception> public IniData Parse(string iniDataString) { IniData iniData = new IniData(); iniData.Configuration = this.Configuration.Clone(); if (string.IsNullOrEmpty(iniDataString)) { return(iniData); } _currentCommentListTemp.Clear(); _currentSectionNameTemp = null; try { var lines = iniDataString.Split(Environment.NewLine.ToCharArray(), StringSplitOptions.RemoveEmptyEntries); foreach (var line in lines) { ProcessLine(line, iniData); } // Orphan comments, assing to last section if (_currentCommentListTemp.Count > 0) { iniData.Sections.GetSectionData(_currentSectionNameTemp).TrailingComments .AddRange(_currentCommentListTemp); _currentCommentListTemp.Clear(); } } catch { if (Configuration.ThrowExceptionsOnError) { throw; } return(null); } return((IniData)iniData.Clone()); }
//public PortConfig(JObject resource, string packageFolder) public PKG_Conf(IniData pkgConf, List <Tuple <string, string> > variables, string pkgConfName, string toolTip) { InitializeComponent(); fields = new List <string>(); fields.Add("package_name"); fields.Add("pkg_min_ver"); fields.Add("pkg_max_ver"); fields.Add("dsm_min_ver"); fields.Add("dsm_max_ver"); this.origPkgConf = pkgConf == null ? null : pkgConf.Clone() as IniData; this.pkgConfName = pkgConfName; this.Text = this.Text + " - " + pkgConfName; this.toolTip.SetToolTip(this.dataGridViewConfig, toolTip); this.variables = variables; SetPkgConfig(pkgConf); foreach (var control in panelPortConfig.Controls) { var item = control as Control; if (item != null) { item.MouseEnter += new System.EventHandler(this.OnMouseEnter); item.Enter += new System.EventHandler(this.OnMouseEnter); item.MouseLeave += new System.EventHandler(this.OnMouseLeave); if (item.Name.StartsWith("textBox") && Helper.IsSubscribed(item, "EventValidating")) { item.TextChanged += new System.EventHandler(this.OnTextChanged); } } } Helper.LoadDSMReleases(textBoxDsmMinVer); Helper.LoadDSMReleases(textBoxDsmMaxVer); }
/// <summary> /// Parses a string containing valid ini data /// </summary> /// <param name="iniDataString"> /// String with data /// </param> /// <returns> /// An <see cref="IniData"/> instance with the data contained in /// the <paramref name="iniDataString"/> correctly parsed an structured. /// </returns> /// <exception cref="ParsingException"> /// Thrown if the data could not be parsed /// </exception> public IniData Parse(string iniDataString) { IniData iniData = Configuration.CaseInsensitive ? new IniDataCaseInsensitive() : new IniData(); iniData.Configuration = this.Configuration.Clone(); if (string.IsNullOrEmpty(iniDataString)) { return(iniData); } _errorExceptions.Clear(); _currentCommentListTemp.Clear(); _currentSectionNameTemp = null; try { var lines = iniDataString.Split(new [] { "\n", "\r\n" }, StringSplitOptions.None); for (int lineNumber = 0; lineNumber < lines.Length; lineNumber++) { var line = lines[lineNumber]; if (line.Trim() == String.Empty) { continue; } try { ProcessLine(line, iniData); } catch (Exception ex) { var errorEx = new ParsingException(ex.Message, lineNumber + 1, line, ex); if (Configuration.ThrowExceptionsOnError) { throw errorEx; } else { _errorExceptions.Add(errorEx); } } } // Orphan comments, assing to last section/key value if (_currentCommentListTemp.Count > 0) { // Check if there are actually sections in the file if (iniData.Sections.Count > 0) { iniData.Sections.GetSectionData(_currentSectionNameTemp).TrailingComments .AddRange(_currentCommentListTemp); } // No sections, put the comment in the last key value pair // but only if the ini file contains at least one key-value pair else if (iniData.Global.Count > 0) { iniData.Global.GetLast().Comments .AddRange(_currentCommentListTemp); } _currentCommentListTemp.Clear(); } } catch (Exception ex) { _errorExceptions.Add(ex); if (Configuration.ThrowExceptionsOnError) { throw; } } if (HasError) { return(null); } return((IniData)iniData.Clone()); }
public IniData Parse(string iniDataString) { IniData iniData = this.Configuration.CaseInsensitive ? new IniDataCaseInsensitive() : new IniData(); iniData.Configuration = this.Configuration.Clone(); bool flag = string.IsNullOrEmpty(iniDataString); IniData result; if (flag) { result = iniData; } else { this._errorExceptions.Clear(); this._currentCommentListTemp.Clear(); this._currentSectionNameTemp = null; try { string[] array = iniDataString.Split(new string[] { "\n", "\r\n" }, StringSplitOptions.None); for (int i = 0; i < array.Length; i++) { string text = array[i]; bool flag2 = text.Trim() == string.Empty; if (!flag2) { try { this.ProcessLine(text, iniData); } catch (Exception ex) { ParsingException ex2 = new ParsingException(ex.Message, i + 1, text, ex); bool throwExceptionsOnError = this.Configuration.ThrowExceptionsOnError; if (throwExceptionsOnError) { throw ex2; } this._errorExceptions.Add(ex2); } } } bool flag3 = this._currentCommentListTemp.Count > 0; if (flag3) { bool flag4 = iniData.Sections.Count > 0; if (!flag4) { bool flag5 = iniData.Global.Count > 0; if (flag5) { iniData.Global.GetLast().Comments.AddRange(this._currentCommentListTemp); } } this._currentCommentListTemp.Clear(); } } catch (Exception item) { this._errorExceptions.Add(item); bool throwExceptionsOnError2 = this.Configuration.ThrowExceptionsOnError; if (throwExceptionsOnError2) { throw; } } bool hasError = this.HasError; if (hasError) { result = null; } else { result = (IniData)iniData.Clone(); } } return(result); }