private static void EndRead() { schemeStyle = null; readerStyle = null; tempComments.Clear(); tempOptionalValues.Clear(); tempSectionName = null; tempExceptions.Clear(); }
public static IniConfig ReadFromString(string iniString, IniSchemeStyle schemeStyle = null, IniReaderStyle readerStyle = null) { if (string.IsNullOrEmpty(iniString)) { return(null); } IniReader.schemeStyle = schemeStyle ?? new IniSchemeStyle(); IniReader.readerStyle = readerStyle ?? new IniReaderStyle(); cachedComments.Clear(); cachedOptionalValues.Clear(); cachedSectionName = null; textBuffer.Text = iniString; IniConfig iniConfig = new IniConfig(); IniLineRange iniLine = new IniLineRange(); int lineStartIndex = 0; while (textBuffer.ReadLine(lineStartIndex, ref iniLine)) { lineStartIndex = iniLine.End + 1; if (textBuffer.IsContentWhitespace(iniLine)) { continue; } if (ProcessCommentLine(iniLine)) { continue; } if (ProcessSection(iniLine, out var section)) { iniConfig.AddSection(section); section.Comments.AddRange(cachedComments); cachedComments.Clear(); continue; } if (ProcessOptionalValue(iniLine)) { continue; } if (ProcessProperty(iniLine, out var property)) { property.Comments.AddRange(cachedComments); property.OptionalValues.AddRange(cachedOptionalValues); var s = iniConfig.GetSection(cachedSectionName); s.AddProperty(property); continue; } } return(iniConfig); }
private static void BeginRead() { if (schemeStyle == null) { schemeStyle = new IniSchemeStyle(); } if (readerStyle == null) { readerStyle = new IniReaderStyle(); } tempComments.Clear(); tempOptionalValues.Clear(); tempSectionName = null; tempExceptions.Clear(); }
public static IniData ReadFromString(string iniString, IniSchemeStyle schemeStyle = null, IniReaderStyle readerStyle = null) { IniReader.schemeStyle = schemeStyle; IniReader.readerStyle = readerStyle; BeginRead(); IniData iniData = new IniData(); IniTextBuffer stringBuffer = new IniTextBuffer(iniString); while (stringBuffer.ReadLine()) { try { ProcessLine(stringBuffer, iniData); } catch (Exception e) { tempExceptions.Add(e); if (readerStyle.ThrowExceptionsOnError) { EndRead(); throw; } } } if (tempExceptions.Count > 0) { iniData = null; } EndRead(); return(iniData); }