zoukankan      html  css  js  c++  java
  • C#文件操作

    public class Properties
    {
        private Dictionary<String, String> list;
        private String filename;
    
        public Properties(String file)
        {
            reload(file);
        }
    
        public String get(String field, String defValue)
        {
            return (get(field) == null) ? (defValue) : (get(field));
        }
        public String get(String field)
        {
            return (list.ContainsKey(field))?(list[field]):(null);
        }
    
        public void set(String field, Object value)
        {
            if (!list.ContainsKey(field))
                list.Add(field, value.ToString());
            else
                list[field] = value.ToString();
        }
    
        public void Save()
        {
            Save(this.filename);
        }
    
        public void Save(String filename)
        {
            this.filename = filename;
    
            if (!System.IO.File.Exists(filename))
                System.IO.File.Create(filename);
    
            System.IO.StreamWriter file = new System.IO.StreamWriter(filename);
    
            foreach(String prop in list.Keys.ToArray())
                if (!String.IsNullOrWhiteSpace(list[prop]))
                    file.WriteLine(prop + "=" + list[prop]);
    
            file.Close();
        }
    
        public void reload()
        {
            reload(this.filename);
        }
    
        public void reload(String filename)
        {
            this.filename = filename;
            list = new Dictionary<String, String>();
    
            if (System.IO.File.Exists(filename))
                loadFromFile(filename);
            else
                System.IO.File.Create(filename);
        }
    
        private void loadFromFile(String file)
        {
            foreach (String line in System.IO.File.ReadAllLines(file))
            {
                if ((!String.IsNullOrEmpty(line)) &&
                    (!line.StartsWith(";")) &&
                    (!line.StartsWith("#")) &&
                    (!line.StartsWith("'")) &&
                    (line.Contains('=')))
                {
                    int index = line.IndexOf('=');
                    String key = line.Substring(0, index).Trim();
                    String value = line.Substring(index + 1).Trim();
    
                    if ((value.StartsWith(""") && value.EndsWith(""")) ||
                        (value.StartsWith("'") && value.EndsWith("'")))
                    {
                        value = value.Substring(1, value.Length - 2);
                    }
    
                    try
                    {
                        //ignore dublicates
                        list.Add(key, value);
                    }
                    catch { }
                }
            }
        }
    
    
    }
    

    Sample use:

    //load
    Properties config = new Properties(fileConfig);
    //get value whith default value
    com_port.Text = config.get("com_port", "1");
    //set value
    config.set("com_port", com_port.Text);
    //save
    config.Save()

    引用:https://www.e-learn.cn/topic/95012
    HK
  • 相关阅读:
    Sublime Text 3 快捷键汇总
    jquery远程引用地址大全
    我的网站以后要如何设计
    word中特殊符号的替换
    如何有效地提升JavaScript 水平?
    HTML5坦克大战(2)绘制坦克复习
    JavaScript中的对象冒充
    让年轻程序员少走弯路的14个忠告
    ASCII
    可以用旋转法绘制平行四边形
  • 原文地址:https://www.cnblogs.com/HarryK4952/p/14234242.html
Copyright © 2011-2022 走看看