c#ini配置文件的读写操作

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

INI就是扩展名为"INI"的文件,其实他本身是个文本文件,可以用记事本打工,主

要存放的是用户所做的选择或系统的各种参数.

INI文件其实并不是普通的文本文件.它有自己的结构.由若干段落(SECTION)组成,在每个带括号的标题下面,是若干个以单个单词开头的关键字(KEYWORD)和一个

等号,等号右边就是关键字的值(VALUE).例如:

[Section1]

KeyWord1 = Value1

KeyWord2 = Value2

...

[Section2]

KeyWord3 = Value3

KeyWord4 = Value4

我现在介绍的是系统处理INI的方法.虽然C#中没有,但是在"kernel32.dll"这个文件

中有Win32的API函数--WritePrivateProfileString()和GetPrivateProfileString() C#声明INI文件的写操作函数WritePrivateProfileString():

[DllImport( "kernel32" )]

private static extern long WritePrivateProfileString ( string section ,string key , s tring val , string filePath ) ;

参数说明:section:INI文件中的段落;key:INI文件中的关键字;val:INI文件

中关键字的数值;filePath:INI文件的完整的路径和名称。

C#申明INI文件的读操作函数GetPrivateProfileString():

[DllImport("kernel32")]

private static extern int GetPrivateProfileString ( string section ,

string key , string def , StringBuilder retVal , int size , string filePath ) ;

参数说明:section:INI文件中的段落名称;key:INI文件中的关键字;def:无法读取时候时候的缺省数值;retVal:读取数值;size:数值的大小;filePath:INI文件的完整路径和名称。

下面是一个读写INI文件的类:

public class INIClass

{

public string inipath;

[DllImport("kernel32")]

private static extern long WritePrivateProfileString(string section,string key,strin

g val,string filePath);

[DllImport("kernel32")]

private static extern int GetPrivateProfileString(string section,string key,string de f,StringBuilder retVal,int size,string filePath);

///

///构造方法

///

///文件路径

public INIClass(string INIPath)

{

inipath = INIPath;

}

///

///写入INI文件

///

///项目名称(如 [TypeName] )

///

///

public void IniWriteValue(string Section,string Key,string Value)

{

WritePrivateProfileString(Section,Key,Value,this.inipath);

}

///

///读出INI文件

///

///项目名称(如 [TypeName] )

///

public string IniReadValue(string Section,string Key)

{

StringBuilder temp = new StringBuilder(500);

int i = GetPrivateProfileString(Section,Key,"",temp,500,this.inipath); return temp.ToString();

}

///

///验证文件是否存在

///

///布尔值

public bool ExistINIFile()

{

return File.Exists(inipath);

}

}

相关文档
最新文档