C#2005 一个简单的访问ini文件类
2008-04-11 15:23
387 查看
//////////////////////////////////////////////////////////////
using System;
using System.IO;
using System.Runtime.InteropServices;
using System.Text;
namespace FileControl
{
/// <summary>
/// IniFile 的摘要说明。
/// </summary>
public class IniFile
{
private string configFileName;
[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>
/// 设定配置文件名称
/// </summary>
/// <param name="fileName">配置文件名称</param>
public IniFile(string fileName)
{
configFileName = fileName;
}
/// <summary>
/// 从ini文件读取4字节整型值
/// </summary>
/// <param name="section">节名</param>
/// <param name="key">键名</param>
/// <param name="def">默认值</param>
/// <returns>成功返回找到的条目的值;如指定的条目未找到,就返回默认值。</returns>
public int ReadInt(string section,string key,int def)
{
return GetPrivateProfileInt(section,key,def,configFileName);
}
/// <summary>
/// 从ini文件读取字符串值
/// </summary>
/// <param name="section">节名</param>
/// <param name="key">键名</param>
/// <param name="def">默认值</param>
/// <returns>成功返回读取到的字符串;如指定的条目未找到,就返回默认值。</returns>
public string ReadString(string section,string key,string def)
{
StringBuilder temp = new StringBuilder(1024);
int stringLength;
stringLength = GetPrivateProfileString(section,key,def,temp,1024,configFileName);
if (stringLength > 0)
{
return temp.ToString();
}
else
{
return def;
}
}
/// <summary>
/// 向ini文件写入4字节整型值
/// </summary>
/// <param name="section">节名</param>
/// <param name="key">键名</param>
/// <param name="def">默认值</param>
/// <returns>写入成功返回True,失败返回False。</returns>
public bool WriteInt(string section,string key,int iVal)
{
return WritePrivateProfileString(section,key,iVal.ToString(),configFileName);
}
/// <summary>
/// 向ini文件写入字符串值
/// </summary>
/// <param name="section">节名</param>
/// <param name="key">键名</param>
/// <param name="def">默认值</param>
/// <returns>写入成功返回True,失败返回False。</returns>
public bool WriteString(string section,string key,string strVal)
{
return WritePrivateProfileString(section,key,strVal,configFileName);
}
/// <summary>
/// 从ini文件删除键
/// </summary>
/// <param name="section">节名</param>
/// <param name="key">键名</param>
/// <returns>删除成功返回True,失败返回False。</returns>
public bool DelKey(string section,string key)
{
return WritePrivateProfileString(section,key,null,configFileName);
}
/// <summary>
/// 从ini文件删除节
/// </summary>
/// <param name="section">节名</param>
/// <returns>删除成功返回True,失败返回False。</returns>
public bool DelSection(string section)
{
return WritePrivateProfileString(section,null,null,configFileName);
}
}
}
using System;
using System.IO;
using System.Runtime.InteropServices;
using System.Text;
namespace FileControl
{
/// <summary>
/// IniFile 的摘要说明。
/// </summary>
public class IniFile
{
private string configFileName;
[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>
/// 设定配置文件名称
/// </summary>
/// <param name="fileName">配置文件名称</param>
public IniFile(string fileName)
{
configFileName = fileName;
}
/// <summary>
/// 从ini文件读取4字节整型值
/// </summary>
/// <param name="section">节名</param>
/// <param name="key">键名</param>
/// <param name="def">默认值</param>
/// <returns>成功返回找到的条目的值;如指定的条目未找到,就返回默认值。</returns>
public int ReadInt(string section,string key,int def)
{
return GetPrivateProfileInt(section,key,def,configFileName);
}
/// <summary>
/// 从ini文件读取字符串值
/// </summary>
/// <param name="section">节名</param>
/// <param name="key">键名</param>
/// <param name="def">默认值</param>
/// <returns>成功返回读取到的字符串;如指定的条目未找到,就返回默认值。</returns>
public string ReadString(string section,string key,string def)
{
StringBuilder temp = new StringBuilder(1024);
int stringLength;
stringLength = GetPrivateProfileString(section,key,def,temp,1024,configFileName);
if (stringLength > 0)
{
return temp.ToString();
}
else
{
return def;
}
}
/// <summary>
/// 向ini文件写入4字节整型值
/// </summary>
/// <param name="section">节名</param>
/// <param name="key">键名</param>
/// <param name="def">默认值</param>
/// <returns>写入成功返回True,失败返回False。</returns>
public bool WriteInt(string section,string key,int iVal)
{
return WritePrivateProfileString(section,key,iVal.ToString(),configFileName);
}
/// <summary>
/// 向ini文件写入字符串值
/// </summary>
/// <param name="section">节名</param>
/// <param name="key">键名</param>
/// <param name="def">默认值</param>
/// <returns>写入成功返回True,失败返回False。</returns>
public bool WriteString(string section,string key,string strVal)
{
return WritePrivateProfileString(section,key,strVal,configFileName);
}
/// <summary>
/// 从ini文件删除键
/// </summary>
/// <param name="section">节名</param>
/// <param name="key">键名</param>
/// <returns>删除成功返回True,失败返回False。</returns>
public bool DelKey(string section,string key)
{
return WritePrivateProfileString(section,key,null,configFileName);
}
/// <summary>
/// 从ini文件删除节
/// </summary>
/// <param name="section">节名</param>
/// <returns>删除成功返回True,失败返回False。</returns>
public bool DelSection(string section)
{
return WritePrivateProfileString(section,null,null,configFileName);
}
}
}
相关文章推荐
- C#2005 一个简单的Access数据库访问类
- C#2005 一个简单的扫描文件读取XML文件类
- 一个简单实用的“数据库访问层”!(基于C#语言)
- C#2005 一个简单的查询界面代码:DataGridView使用、图像显示、复合查询样例
- 一个简单的QQ隐藏图生成算法 通过jQuery和C#分别实现对.NET Core Web Api的访问以及文件上传
- C# Visual Studio 2005中定义一个变量让所有的Form都能访问到
- c++积累(2):一个简单的堆栈访问操作
- 一个简单方法完成C#时间间隔的计算
- 【C#网络编程系列】专题十二:实现一个简单的FTP服务器
- 一个简单访问Mysql数据库的例程
- C#TCPClient应用-一个简单的消息发送和接收
- C#简单访问CANcaseXL,使用CANcaseXL收发报文
- Visual Studio 2005(C#)中只允许一个实例运行的一种方法
- C# 一个简单的递归函数和 两个List<T> 合并
- C#中WerServer接口参数规范、访问地址的简单阐述,以及出现的问题
- 如何在C#中使用sqlite,一个简单的类
- (C#)一个WCF简单实例
- Linux FTP 服务器配置简单说明【从防火墙关闭到关闭selinux-sestatus到配置ftp用户访问的数据目录再到添加一个ftp用户】
- 写一个简单的C#反射的例子(附有源码)
- 使用C#开发一个简单的P2P应用