日期:2013-08-15  浏览次数:20481 次

using System;
using System.IO;
using System.Runtime.InteropServices;
using System.Text;
using Microsoft.Win32;

namespace Wjb.ReadOrWriteIniAndReg
{
/// <summary>
/// RWIni 的摘要说明。
/// 读写ini文件类
/// 类库开发:吴剑冰
/// 时间:2003年10月20日
/// 功能:读写INI文件
/// </summary>
public class RWIni
{
private static string FileName;

[DllImport("kernel32")]
private static extern int GetPrivateProfileInt(
string lpAppName,
string lpKeyName,
int nDefault,
string lpFileName
);
[DllImport("kernel32")]
private static extern int GetPrivateProfileString(
string lpAppName,
string lpKeyName,
string lpDefault,
StringBuilder lpReturnedString,
int nSize,
string lpFileName
);
[DllImport("kernel32")]
private static extern bool WritePrivateProfileString(
string lpAppName,
string lpKeyName,
string lpString,
string lpFileName
);

/// <summary>
///构造读写全路径为filename的ini文件的类
/// </summary>
/// <param name="filename"></param>
public RWIni(string filename)
{
//
// 构造函数
//
FileName=filename;
}
/// <summary>
/// 读取整型数据
/// </summary>
/// <param name="section"></param>
/// <param name="key"></param>
/// <param name="def"></param>
/// <returns></returns>
public int GetInt(string section,string key,int def)
{
return GetPrivateProfileInt(section,key,def,FileName);
}
/// <summary>
/// 读取字符串数据
/// </summary>
/// <param name="section"></param>
/// <param name="key"></param>
/// <param name="def"></param>
/// <returns></returns>
public string GetString(string section,string key,string def)
{
StringBuilder temp=new StringBuilder(1024);
GetPrivateProfileString(section,key,def,temp,1024,FileName);
return temp.ToString();
}
/// <summary>
/// 写入整型数据
/// </summary>
/// <param name="section"></param>
/// <param name="key"></param>
/// <param name="iVal"></param>
public void WriteInt(string section,string key,int iVal)
{
WritePrivateProfileString(section,key,iVal.ToString(),FileName);
}
/// <summary>
/// 写入字符串数据
/// </summary>
/// <param name="section"></param>
/// <param name="key"></param>
/// <param name="strVal"></param>
public void WriteString(string section,string key,string strVal)
{
WritePrivateProfileString(section,key,strVal,FileName);
}
/// <summary>
/// 删除键值
/// </summary>
/// <param name="section"></param>
/// <param name="key"></param>
public void DelKey(string section