public static ACBrIniFile Load(Stream stream, Encoding encoding = null) { Guard.Against <ArgumentNullException>(stream == null, nameof(stream)); encoding = encoding ?? ACBrEncoding.ISO88591; var iniFile = new ACBrIniFile { Encoding = encoding }; using (var reader = new StreamReader(stream, iniFile.Encoding)) { string line; var section = string.Empty; while ((line = reader.ReadLine()) != null) { line = line.Trim(); if (line.IsEmpty()) { continue; } if (line.StartsWith(";")) { continue; } if (line.StartsWith("[")) { section = line.Substring(1, line.Length - 2); iniFile.sections.Add(new ACBrIniSection(iniFile, section)); } else { if (section.IsEmpty()) { continue; } var iniSection = iniFile[section]; var properties = line.Split('='); iniSection.Add(properties[0], properties[1]); } } } return(iniFile); }
public ACBrIniSection(ACBrIniFile parent, string name) { Parent = parent; Name = name; }