自己写的 读写 ini 配置文件类
2015-08-04 10:01
239 查看
/// <summary> /// 不调用系统API 读写 ini 配置文件 /// </summary> public class RW_ini { #region ========ini 读写======== // 首次调用 RWini 时需要初始化此参数 public static string pathIni; // 记录错误信息 与 WriteLog 一起使用 public static string pathErr; public static string ReadIni(string section, string key) { string result = ""; try { // 文件存在 if (File.Exists(pathIni)) { //读取INI文件 string buffer; string[] temp; using (StreamReader sr = new StreamReader(pathIni, Encoding.Default)) { while (sr.Peek() >= 0) { buffer = sr.ReadLine().Trim(); if (!string.IsNullOrEmpty(buffer) && buffer.StartsWith(string.Format("[{0}]", section), StringComparison.OrdinalIgnoreCase)) { while (sr.Peek() > 0) { buffer = sr.ReadLine().Trim(); if (!string.IsNullOrEmpty(buffer)) { if (buffer.StartsWith("[")) break; if (!buffer.StartsWith(";")) { temp = buffer.Split('='); if (temp.Length > 1 && temp[0].TrimEnd().Equals(key, StringComparison.OrdinalIgnoreCase)) { return temp[1].TrimStart(); } } } } // 不再判断下一个节点 return result; } } } } // 不再判断下一个节点 return result; } catch { throw new ApplicationException("同步文件读取异常!"); } } private void WriteIni(string section, string key, string value) { try { // 文件不存在则创建 if (!File.Exists(pathIni)) { File.Create(pathIni); } // 修改INI文件 bool modify = false, find = false; string buffer; List<string> temp = new List<string>(); // 将所有配置文件放到集合中 using (StreamReader sr = new StreamReader(pathIni, Encoding.Default)) { while (sr.Peek() >= 0) { buffer = sr.ReadLine().Trim(); temp.Add(buffer); if (!modify && !string.IsNullOrEmpty(buffer) && buffer.StartsWith(string.Format("[{0}]", section), StringComparison.OrdinalIgnoreCase)) { find = true; while (sr.Peek() >= 0) { buffer = sr.ReadLine().Trim(); temp.Add(buffer); if (!string.IsNullOrEmpty(buffer)) { if (buffer.StartsWith("[")) break; if (!modify && !buffer.StartsWith(";") && buffer.Split('=')[0].TrimEnd() == key) { modify = true; temp.RemoveAt(temp.Count - 1); if (value != null) { temp.Add(string.Format("{0} = {1}", key, value)); } } } } if (!modify) { temp.Insert(temp.Count - 1, string.Format("{0} = {1}", key, value)); } } } if (!modify && !find) { temp.Add(string.Format("[{0}]", section)); temp.Add(string.Format("{0} = {1}", key, value)); } } using (StreamWriter sw = new StreamWriter(pathIni, false, Encoding.Default)) { foreach (string item in temp) sw.WriteLine(item); } } catch { throw new ApplicationException("同步文件写入异常!"); } } public static void WriteLog(string content) { File.AppendText(pathErr).WriteLine("时间:{0} 信息:{1}", DateTime.Now.ToString("yyyy-MM-dd HH:mm"), content); } }
因为 WinCE 不带读写 ini 的API 而且自己用的配置文件节点并不多
因此自己编写此类 用于 WinCE 系统中。C# 代码
相关文章推荐
- HashSet 的contains方法
- 一串英文字符中 变第一个字母为大写
- 如何在Linux下修改Mysql的用户(root)密码
- Tomcat服务器学习和使用(二)
- Error: '$' is undefined
- python基础学习小作业(一)
- 音乐治疗处方
- JavaScript中模拟实现Java的集合类Map的常用方
- VIM复制、粘贴、删除、撤销
- windows一些常用设置
- 从Theano到Lasagne:基于Python的深度学习的框架和库
- Android Studio 1.x版 签名key生成,查看key的sha1 和MD5 的方法
- [leetcode-64]Minimum Path Sum(C)
- 关于下载Spring官方包
- Mac/WIN zip压缩包乱码问题解决
- STL之traits编程技法
- php安全配置分享
- Tomcat服务器学习和使用(一)
- 南邮 OJ 1056 地道
- angularJS--多个控制器之间的数据共享