using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; namespace Chop { public class Config { private string mFilePath; private Dictionary mValues; public Config(string FilePath) { this.mFilePath = FilePath; this.mValues = new Dictionary(); string[] configContent = File.ReadAllLines(mFilePath); foreach (string line in configContent) { string[] split = line.Split('\''); if (split.Length > 1 && !split[0].Contains('#')) { string key = split[0].Substring(0, split[0].Length - 1).Replace("\\\'", "\'"); string content = split[1].Replace("\\\'", "\'"); mValues.Add(key, content); } } } public string ReadValue(string key) { string[] content = File.ReadAllLines(mFilePath); foreach (string line in content) if (line.Contains('=')) if (line.Split('=')[0] == key) return line.Split('=')[1]; return null; } public void EditValue(string key, string value) { string[] content = File.ReadAllLines(mFilePath); for(int i = 0; i < content.Length; i++) { if (content[i].Contains('=')) { string[] s = content[i].Split('='); if (s[0] == key) s[1] = value; content[i] = s[0] + '=' + s[1]; } } File.WriteAllLines(mFilePath, content); } public void AddValue(string key, string value) { File.AppendAllText(mFilePath, Environment.NewLine + key + "=" + value); } public string GetString(string key) { if (mValues.ContainsKey(key)) return mValues[key]; return null; } public int GetInt(string key) { return int.Parse(GetString(key)); } public bool GetBoolean(string key) { return GetInt(key) == 1; } } }