自己写的 读写 ini 配置文件类
- /// <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() >= )
- {
- buffer = sr.ReadLine().Trim();
- if (!string.IsNullOrEmpty(buffer) && buffer.StartsWith(string.Format("[{0}]", section), StringComparison.OrdinalIgnoreCase))
- {
- while (sr.Peek() > )
- {
- buffer = sr.ReadLine().Trim();
- if (!string.IsNullOrEmpty(buffer))
- {
- if (buffer.StartsWith("["))
- break;
- if (!buffer.StartsWith(";"))
- {
- temp = buffer.Split('=');
- if (temp.Length > && temp[].TrimEnd().Equals(key, StringComparison.OrdinalIgnoreCase))
- {
- return temp[].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() >= )
- {
- 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() >= )
- {
- buffer = sr.ReadLine().Trim();
- temp.Add(buffer);
- if (!string.IsNullOrEmpty(buffer))
- {
- if (buffer.StartsWith("["))
- break;
- if (!modify && !buffer.StartsWith(";") && buffer.Split('=')[].TrimEnd() == key)
- {
- modify = true;
- temp.RemoveAt(temp.Count - );
- if (value != null)
- {
- temp.Add(string.Format("{0} = {1}", key, value));
- }
- }
- }
- }
- if (!modify)
- {
- temp.Insert(temp.Count - , 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# 代码
自己写的 读写 ini 配置文件类的更多相关文章
- 引用“kernel32”读写ini配置文件
引用"kernel32"读写ini配置文件 unity ini kernel32 配置文件 引用"kernel32"读写ini配置文件 OverView ke ...
- C# 文件的一些基本操作(转)//用C#读写ini配置文件
C# 文件的一些基本操作 2009-07-19 来自:博客园 字体大小:[大 中 小] 摘要:介绍C#对文件的一些基本操作,读写等. using System;using System.IO;us ...
- 使用C#读写ini配置文件
INI就是扩展名为"INI"的文件,其实他本身是个文本文件,可以用记事本打工,主要存放的是用户所做的选择或系统的各种参数. INI文件其实并不是普通的文本文件.它有自己的结构.由若 ...
- C# 读写 ini 配置文件
虽说 XML 文件越发流行,但精简的 ini 配置文件还是经常会用到,在此留个脚印. 当然,文中只是调用系统API,不会报错,如有必要,也可以直接以流形式读取 ini文件并解析. /// <su ...
- C#操作读写INI配置文件
一个完整的INI文件格式由节(section).键(key).值(value)组成.示例如:[section]key1=value1key2=value2; 备注:value的值不要太长,理论上最多不 ...
- [转]VB 读写ini 配置文件
转自 百度知道 C# 读写 ini配置文件 点此链接 'API 声明Public Declare Function GetPrivateProfileString Lib "kernel32 ...
- C# 读取Ini配置文件类
配置文件 为fileName.ini 的文件 第一行必须为空,不然读不出值 [section1] key=value key2=value ......... [section2] key=value ...
- C++读写ini配置文件GetPrivateProfileString()&WritePrivateProfileString()
转载: 1.https://blog.csdn.net/fengbingchun/article/details/6075716 2. 转自:http://hi.baidu.com/andywangc ...
- QT读写ini配置文件
/********下面是写ini文件*************************/ //Qt中使用QSettings类读写ini文件 //QSettings构造函数的第一 ...
随机推荐
- 2015年蓝桥杯省赛B组第3题--三羊献瑞
三羊献瑞 观察下面的加法算式: 祥 瑞 生 辉 + 三 羊 献 瑞 ------------------- 三 羊 生 瑞 气 (如果有对齐问题,可以参看[图1.jpg]) 其中,相同的 ...
- android开源项目集合
ZXing http://code.google.com/p/zxing/ 条形码.二维码 K-9 Mail http://code.google.com/p/k9mail/ 邮件客户端 Sipdro ...
- SOD范例
SOD申请台站波形数据范例: <?xml version="1.0"?> <sod> <eventArm> <fdsnEvent> ...
- Jmeter BeanShell 从数据库中获取数据并创建一个requesBody
一.前言 在测试接口的时候常常会使用到数据库中的数据,当要使用大量的数据时,仅仅使用数据库查询是不够的.还需要使用自动化让操作更简便. 下面以一个简单的例子阐述一下如何使用beanShell让代码更简 ...
- mysql 试图
关系型数据库中的数据是由一张一张的二维关系表所组成,简单的单表查询只需要遍历一个表,而复杂的多表查询需要将多个表连接起来进行查询任务.对于复杂的查询事件,每次查询都需要编写MySQL代码效率低下.为了 ...
- C语言基础:常见循环语句 分类: iOS学习 c语言基础 2015-06-10 21:46 13人阅读 评论(0) 收藏
for语句 for( 初始化表达式; 循环判断条件 ;增量表达式); while(条件表达式){ 循环体; } 先判断条件表达式,如果为真就执行循环体,执行完再去判断条件表达式 do{ 循环体; } ...
- 基础练习 Huffuman树
基础练习 Huffuman树 时间限制:1.0s 内存限制:512.0MB 问题描述 Huffman树在编码中有着广泛的应用.在这里,我们只关心Huffman树的构造过程. 给 ...
- 关于CGI和FastCGI的理解
在搭建 LAMP/LNMP 服务器时,会经常遇到 PHP-FPM.FastCGI和CGI 这几个概念.如果对它们一知半解,很难搭建出高性能的服务器. 0.CGI的引入 在网站的整体架构中,Web Se ...
- JAVA正则表达式-捕获组与非捕获组
Java捕获组与非捕获组的问题 先看例子: import java.util.regex.Matcher; import java.util.regex.Pattern; public class P ...
- LM算法的推导过程