Пример #1
0
        public SettingsCollection ReadSettingsFile(string filepath)
        {
            var settings = new SettingsCollection();

            if (string.IsNullOrEmpty(filepath))
            {
                throw new Exception("ReadSettingsFile received empty filename");
            }
            if (!File.Exists(filepath))
            {
                throw new Exception("Missing file: " + filepath);
            }
            using (var file = new StreamReader(filepath))
            {
                string   contents   = file.ReadToEnd();
                string[] stringSeps = new string[] { "\r\n" };
                string[] lines      = contents.Split(stringSeps, StringSplitOptions.RemoveEmptyEntries);
                foreach (string line in lines)
                {
                    var     lineParser = new SettingsLineParser();
                    Setting setting    = lineParser.ExtractLine(line);
                    settings.AddSetting(setting);
                }
            }
            return(settings);
        }
Пример #2
0
        public static DateTime GetSingleDateTimeValue(SettingsCollection coll, string key)
        {
            string   text = GetSingleStringValue(coll, key);
            DateTime value;

            if (!DateTime.TryParse(text, out value))
            {
                throw new Exception(string.Format("Setting '{0}' failed to parse as DateTime: '{1}'", key, value));
            }
            return(value);
        }
Пример #3
0
        public static int GetSingleIntValue(SettingsCollection coll, string key)
        {
            string text = GetSingleStringValue(coll, key);
            int    value;

            if (!int.TryParse(text, out value))
            {
                throw new Exception(string.Format("Setting '{0}' failed to parse as int: '{1}'", key, value));
            }
            return(value);
        }
Пример #4
0
        public SettingsCollection ParseSettings(IEnumerable <string> lines)
        {
            var settings = new SettingsCollection();

            foreach (string line in lines)
            {
                var     lineParser = new SettingsLineParser();
                Setting setting    = lineParser.ExtractLine(line);
                settings.AddSetting(setting);
            }
            return(settings);
        }
Пример #5
0
        public static string GetSingleStringValue(SettingsCollection coll, string key)
        {
            var setting = coll.GetValue(key);

            if (setting.ParameterCount > 0)
            {
                throw new Exception(string.Format("Setting '{0}' has multiple parameters", key));
            }
            if (!setting.HasSingleValue)
            {
                return(null);
            }
            return(setting.SingleValue);
        }
Пример #6
0
        public static bool GetSingleBoolValue(SettingsCollection coll, string key, bool defVal)
        {
            string text = GetSingleStringValue(coll, key);

            return(ObjToBool(text, defVal));
        }