用C#读写ini配置文件

INI就是扩展名为"INI"的文件,其实他本身是个文本文件,可以用记事本打工,主要存放的是用户所做的选择或系统的各种参数.
INI文件其实并不是普通的文本文件.它有自己的结构.由若干段落(SECTION)组成,在每个带括号的标题下面,是若干个以单个单词开头的关键字(KEYWORD)和一个等号,等号右边就是关键字的值(VALUE).例如:
[Section1]
     KeyWord1 = Value1
     KeyWord2 = Value2
     ...
[Section2]
     KeyWord3 = Value3
     KeyWord4 = Value4

C#命名空间中没有直接读写INI的类,当然如果你把INT当成文本文件用System.IO类来读写算我没说.
我现在介绍的是系统处理INI的方法.
虽然C#中没有,但是在"kernel32.dll"这个文件中有Win32的API函数--WritePrivateProfileString()和GetPrivateProfileString()
C#声明INI文件的写操作函数WritePrivateProfileString():
[DllImport( "kernel32" )]
  
private static extern long WritePrivateProfileString ( string section ,string key , string
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,string val,string
filePath);
[DllImport(
"kernel32"
)]
private static extern int GetPrivateProfileString(string section,string key,string def,StringBuilder retVal,int size,string
filePath);
/// <summary>

/// 构造方法
/// </summary>

/// <param name="INIPath">文件路径</param>
public INIClass(string INIPath)
{
   inipath
=
INIPath;
}
/// <summary>

/// 写入INI文件
/// </summary>

/// <param name="Section">项目名称(如 [TypeName] )</param>
/// <param name="Key"></param>
/// <param name="Value"></param>
public void IniWriteValue(string Section,string Key,string Value)
{
   WritePrivateProfileString(Section,Key,Value,
this
.inipath);
}
/// <summary>

/// 读出INI文件
/// </summary>

/// <param name="Section">项目名称(如 [TypeName] )</param>
/// <param name="Key"></param>
public string IniReadValue(string Section,string Key)
{
   StringBuilder temp
= new StringBuilder(500
);
  
int i = GetPrivateProfileString(Section,Key,"",temp,500,this
.inipath);
  
return
temp.ToString();
}
/// <summary>

/// 验证文件是否存在
/// </summary>

/// <returns>布尔值</returns>
public bool ExistINIFile()
{
  
return
File.Exists(inipath);
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

澕澕8971

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值