/// <summary>Initializes a new instance IniFileSectionStart</summary> /// <param name="content">Actual content of a line in an INI file. Initializer assumes that it is valid.</param> public IniFileSectionStart(string content) : base(content) { //content = Content; formatting = ExtractFormat(content); content = content.TrimStart(); if (IniFileSettings.AllowInlineComments) { IniFileSettings.indexOfAnyResult result = IniFileSettings.indexOfAny(content, IniFileSettings.CommentChars); if (result.index > content.IndexOf(IniFileSettings.SectionCloseBracket)) { inlineComment = content.Substring(result.index + result.any.Length); inlineCommentChar = result.any; content = content.Substring(0, result.index); } } if (IniFileSettings.AllowTextOnTheRight) { int closeBracketPos = content.LastIndexOf(IniFileSettings.SectionCloseBracket); if (closeBracketPos != content.Length - 1) { textOnTheRight = content.Substring(closeBracketPos + 1); content = content.Substring(0, closeBracketPos); } } sectionName = content.Substring(IniFileSettings.SectionOpenBracket.Length, content.Length - IniFileSettings.SectionCloseBracket.Length - IniFileSettings.SectionOpenBracket.Length).Trim(); Content = content; Format(); }
/// <summary>Initializes a new instance IniFileValue.</summary> /// <param name="content">Actual content of a line in an INI file. Initializer assumes that it is valid.</param> public IniFileValue(string content) : base(content) { string[] split = Content.Split(new string[] { IniFileSettings.EqualsString }, StringSplitOptions.None); formatting = ExtractFormat(content); string split0 = split[0].Trim(); string split1 = split.Length >= 1 ? split[1].Trim() : ""; if (split0.Length > 0) { if (IniFileSettings.AllowInlineComments) { IniFileSettings.indexOfAnyResult result = IniFileSettings.indexOfAny(split1, IniFileSettings.CommentChars); if (result.index != -1) { inlineComment = split1.Substring(result.index + result.any.Length); split1 = split1.Substring(0, result.index).TrimEnd(); inlineCommentChar = result.any; } } if (IniFileSettings.QuoteChar != null && split1.Length >= 2) { char quoteChar = (char)IniFileSettings.QuoteChar; if (split1[0] == quoteChar) { int lastQuotePos; if (IniFileSettings.AllowTextOnTheRight) { lastQuotePos = split1.LastIndexOf(quoteChar); if (lastQuotePos != split1.Length - 1) { textOnTheRight = split1.Substring(lastQuotePos + 1); } } else { lastQuotePos = split1.Length - 1; } if (lastQuotePos > 0) { if (split1.Length == 2) { split1 = ""; } else { split1 = split1.Substring(1, lastQuotePos - 1); } } } } key = split0; value = split1; } Format(); }