C# 创建ini文件

INI文件就是扩展名为"INI"的文件,其实他本身是个文本文件,可以用记事本打开,主要存放的是用户所做的选择或系统的各种参数。

INI文件并不是普通的文本文件。它有自己的结构,由若干段落(SECTION)组成,在每个带中括号标题下面,

是若干个以 单个单词 开头的关键字(KEYWORD)和一个等号,等号右边就是关键字的(VALUE)。

例如:
[Section1] 

    KeyWord1 = Value1
    KeyWord2 = Value2
    ...
[Section2]
    KeyWord3 = Value3
    KeyWord4 = Value4

C#命名空间中没有直接读写INI的类,当然你也可以把INT当成文本文件用System.IO类来读写。
以下现在介绍的是系统处理INI的方法。
在"kernel32.dll"这个文件中有Win32的API函数:WritePrivateProfileString()  和  GetPrivateProfileString()

需引用:using System.Runtime.InteropServices;

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文件的完整路径和名称。 

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);
 }
}

参考自:

http://www.cnblogs.com/2010412/archive/2010/11/19/1881893.html

http://blog.csdn.net/yysyangyangyangshan/article/details/7017523


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值