重构YH是遇到这个一样问题,就是YH前台页面的按钮要求实现客户自定义,客户可以跟随自己的喜好安排每个按钮的功能,所以,在每一次客户登陆是就需要初始化客户自定义排版,这里就需要用到初始化文件——INI。
.ini 文件是Initialization File的缩写,即初始化文件。是windows的系统配置文件所采用的存储格式,统管windows的各项配置,一般用户就用windows提供的各项图形化管理界面就可实现相同的配置了,但在某些情况,还是要直接编辑.ini才方便,一般只有很熟悉windows才能去直接编辑。开始时用于WIN3X下面,WIN95用注册表代替,以及后面的内容表示一个节,相当于注册表中的键。
除了windows现在很多其他操作系统下面的应用软件也有.ini文件,用来配置应用软件以实现不同用户的要求。一般不用直接编辑这些.ini文件,应用程序的图形界面即可操作以实现相同的功能。它可以用来存放软件信息,注册表信息等。
INI文件由节、键、值组成。
节
[section]
参数(键=值)
name=value
既然ini文件在初始化中使用,那么免不了的需要对它进行一些写入读取修改的操作,当然,这些东西window已经帮我们封装好了,我们只需要调用就可以了。很easy。
Ini使用到的一些API函数:
#region 调用windowsAPI
//用来读取INI 文件的内容
[DllImport("Kernel32.dll")]
private static extern int GetPrivateProfileString(string strAppName,string strKeyName,string strDefault,StringBuilder sbReturnString,int nSize,string strFileName);
//返回所读取的字符串值的真实长度
[DllImport("Kernel32.dll")]
private extern static int GetPrivateProfileStringA(string strAppName, string strKeyName, string sDefault, byte[] buffer, int nSize, string strFileName);
[DllImport("Kernel32.dll")]
private static extern int GetPrivateProfileInt(string strAppName, string strKeyName, int nDefault, string strFileName);
//获取ini文件所有的section
[DllImport("Kernel32.dll")]
private extern static int GetPrivateProfileSectionNamesA(byte[] buffer, int iLen, string fileName);
//获取指定Section的key和value
[System.Runtime.InteropServices.DllImport("Kernel32.dll")]
private static extern int GetPrivateProfileSection(string lpAppName,byte[] lpReturnedString, int nSize,string lpFileName);
//根据传入参数的不同进行写入或修改或删除操作(返回值 Long,非零表示成功,零表示失败)
[DllImport("Kernel32.dll")]
public static extern long WritePrivateProfileString(string strAppName, string strKeyName, string strKeyValue, string strFileName);
//添加一个section内容列表
[DllImport("Kernel32.dll")]
public static extern long WritePrivateProfileSection(string strAppName, string strkeyandvalue, string strFileName);
#endregion