/// <summary> /// Standard Constructor /// </summary> public NameValueRecord(NameValueDocument owner, string name, string value) { Name = name ?? ""; Value = value ?? ""; if (owner != null) { owner.CoreAddRecord(this); } }
/// <summary> /// Load From File /// </summary> public static NameValueDocument LoadFromFile(string fileName, Encoding encoding, StringComparer comparer, IniFileCommentKind commentKind) { NameValueDocument result = Load(File.ReadAllLines(fileName, encoding), comparer, commentKind); result.FileEncoding = encoding; return(result); }
/// <summary> /// Load /// </summary> public static NameValueDocument Load(IEnumerable <string> lines, StringComparer comparer, IniFileCommentKind commentKind) { if (null == lines) { throw new ArgumentNullException(nameof(lines)); } NameValueDocument result = new NameValueDocument(comparer, commentKind); List <string> comments = new List <string>(); int index = 0; foreach (string line in lines.Select(x => x.Trim())) { index += 1; if (string.IsNullOrWhiteSpace(line)) { continue; } if (line.StartsWith(";") || line.StartsWith("#")) { comments.Add(line.Substring(1)); continue; } if (NameValueRecord.TryParse(line, out var record)) { record.Comments = string.Join(Environment.NewLine, comments); comments.Clear(); result.Add(record); } else { throw new FormatException($"Syntax error in line {index}"); } } return(result); }