您的位置:首页 > 编程语言 > PHP开发

*.ini 文件 与 WritePrivateProfileString()和GetPrivateProfileString()

2010-11-22 10:24 483 查看
INI就是扩展名为"INI"的文件, 该文件主要存放用户所做的选择以及系统的各种参数. 用户可以通过修改INI文件,来改变应用程序和系统的很多配置.

C#命名空间中没有直接读写INI的类,当然如果你把INT当成文本文件用System.IO类来读写可以直接break.

而在"kernel32.dll"这个文件中有Win32的API函数--WritePrivateProfileString()和GetPrivateProfileString()可以对*.ini类型的文件进行读写操作.

申明写操作函数WritePrivateProfileString():
[DllImport( "kernel32" )]

///section:INI文件中的段落

///key:INI文件中的关键字

///val:INI文件中关键字的数值

///filePath:INI文件的完整的路径和名称
private static extern long WritePrivateProfileString ( string section ,string key , string val , string filePath )

申明读操作函数GetPrivateProfileString():

[DllImport("kernel32")]

///section:INI文件中的段落名称

///key:INI文件中的关键字

///def:无法读取时候时候的缺省数值

///retVal:读取数值

///size:数值的大小

///filePath:INI文件的完整路径和名称
private static extern int GetPrivateProfileString ( string section , string key , string def , StringBuilder retVal , int size , string filePath )

以下为*.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">段落名称</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">段落名称</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>
  public bool ExistINIFile()
  {
  return File.Exists(inipath);
  }
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐