Example #1
0
        public static IniFileElement ParseLine(string line)
        {
            if (line == null)
            {
                return(null);
            }
            if (line.Contains("\n"))
            {
                throw new ArgumentException("String passed to the ParseLine method cannot contain more than one line.");
            }
            string         testString     = line.Trim();
            IniFileElement iniFileElement = null;

            if (IniFileBlankLine.IsLineValid(testString))
            {
                iniFileElement = new IniFileBlankLine(1);
            }
            else if (IniFileCommentary.IsLineValid(line))
            {
                iniFileElement = new IniFileCommentary(line);
            }
            else if (IniFileSectionStart.IsLineValid(testString))
            {
                iniFileElement = new IniFileSectionStart(line);
            }
            else if (IniFileValue.IsLineValid(testString))
            {
                iniFileElement = new IniFileValue(line);
            }
            return(iniFileElement ?? new IniFileElement(line));
        }
Example #2
0
        public IniFileValue GotoValue(string key, bool searchWholeFile)
        {
            string text;

            do
            {
                text = ReadLine();
                if (text == null)
                {
                    return(null);
                }
                if (IniFileValue.IsLineValid(text.Trim()))
                {
                    IniFileValue iniFileValue = ParseLine(text) as IniFileValue;
                    if (iniFileValue != null && (iniFileValue.Key == key || (!IniFileSettings.CaseSensitive && iniFileValue.Key.ToLowerInvariant() == key.ToLowerInvariant())))
                    {
                        return(iniFileValue);
                    }
                }
            }while (searchWholeFile || !IniFileSectionStart.IsLineValid(text.Trim()));
            return(null);
        }