C#ini文件读写帮助类
背景
在很多软件实施过程中,当我们项目上线后,难免会有一些配方的切换或者其他的操作,且很多工业的电脑是没有联网的,于是就苦了我们这帮搞工业上位机软件的,我们只是幼儿园刚毕业十几年的孩子,为什么我们要承受这么多。当然上有政策,下有对策,就像我们数据库中的存储过程一样,当我们不想在软件的代码进行修改更新的时候,这个时候引入配置文件的重要性就凸显出来了,就像我们改动数据库的存储过程类似。
实现
需要引入
using System.Runtime.InteropServices;
新建一个类,我们就叫IniFileReadWriteHelper
直接上代码了:
public class SetFileControl
{
[DllImport("kernel32")]
public static extern long WritePrivateProfileString(string section, string key, string val, string filePath);
[DllImport("kernel32")]
public static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath);
/// <summary>
/// 读取INI文档
/// </summary>
/// <param name="Section">区段名</param>
/// <param name="Key">键</param>
/// <param name="file">文件路径</param>
/// <returns>Value</returns>
public static string ReadIniValue(string Section, string Key, string file)
{
StringBuilder _temp = new StringBuilder(1024);
GetPrivateProfileString(Section, Key, "", _temp, 1024, file);
return _temp.ToString();
}
/// <summary>
/// 写入INI文档
/// </summary>
/// <param name="Section">区段名</param>
/// <param name="Key">键</param>
/// <param name="value">Value</param>
/// <param name="file">文件路劲</param>
public static long WriteIniValue(string Section, string Key, string value, string file)
{
long rtu = WritePrivateProfileString(Section, Key, value, file);
return rtu;
}
}
1、读值使用方法
假定我们程序的根目录下面有一个配置文件:SET.ini
里面的内容大致如下:
我们需要读取其中DDJ区域下面的STOP_GIVE_TASK的配置值,结合我们的方法类,我们只需要调用如下所示的方法
string strRead = SetFileControl.ReadIniValue("DDJ", "STOP_GIVE_TASK", Application.StartupPath + @"\SET.ini");
我们来看下结果:
2、写值使用方法
配置文件还是上面的一样,我们进行一个写入操作:
我们验证下结果
是不是很简单?是的,对于ini的文件操作就是这样,但是我们可以进行举一反三,从而进行更多文件的读写,比如xml文件,CSS文件,甚至于word文件等一系列操作,这边只是开了个头。