Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.IO;
- using System.Threading.Tasks;
- /*
- Copyright C 2013 - Barney / chichi011
- Do not remove this header !
- */
- namespace PandaServer
- {
- public static partial class Program
- {
- public static Dictionary<string, dynamic> Settings { get; set; }
- public static async Task<Dictionary<string, dynamic>> LoadSettingsAsync()
- {
- var temp = new Dictionary<string, dynamic>(25);
- using (var reader = new StreamReader("server.ini"))
- {
- string line = "";
- while ((line = await reader.ReadLineAsync()) != null)
- {
- if ((line = line.Trim()) == string.Empty || line.StartsWith("##") || line.StartsWith("'")) continue;
- var data = line.Split('=');
- if (data[1].StartsWith("^pair("))
- temp.Add(data[0], ParsePair(data[1]));
- else if (data[1].StartsWith("^tuple("))
- temp.Add(data[0], ParseTriple(data[1]));
- else
- temp.Add(data[0], ParseValue(data[1]));
- }
- }
- return temp;
- }
- public static dynamic ParseValue(string value)
- {
- dynamic item;
- bool _bool;
- int _int;
- double _double;
- if (!int.TryParse(value, out _int))
- if (!bool.TryParse(value, out _bool))
- if (!double.TryParse(value, out _double))
- item = value;
- else item = _double;
- else item = _bool;
- else item = _int;
- return item;
- }
- static dynamic ParsePair(string expression)
- {
- var split = expression.Replace("^pair(", "").Replace(")", "").Split(',');
- return Tuple.Create(ParseValue(split[0]), ParseValue(split[1]));
- }
- static dynamic ParseTriple(string expression)
- {
- var split = expression.Replace("^tuple(", "").Replace(")", "").Split(',');
- return Tuple.Create(ParseValue(split[0]), ParseValue(split[1]), ParseValue(split[2]));
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment