C#读写ini文件详解

开发 后端
C#读写ini文件是如何进行的呢?C#读写ini文件需要的方法有哪些呢?本文就向你一一介绍。

C#读写ini文件之前要了解的概念:INI就是扩展名为"INI"的文件,其实他本身是个文本文件,可以用记事本打开,主要存放的是用户所做的选择或系统的各种参数.

C#读写ini文件其实并不是普通的文本文件.它有自己的结构.由若干段落(SECTION)组成,在每个带括号的标题下面,是若干个以单个单词开头的关键字(KEYWORD)和一个等号,等号右边就是关键字的值(VALUE).例如:

  1. [Section1]  
  2.     KeyWord1 = Value1  
  3.     KeyWord2 = Value2  
  4.     ...  
  5. [Section2]  
  6.     KeyWord3 = Value3  
  7.     KeyWord4 = Value4 

C#读写ini文件最初的想法:C#命名空间中没有直接读写INI的类,当然如果你把INT当成文本文件用System.IO类来读写算我没说.

我现在介绍的是系统处理INI的方法.

虽然C#中没有,但是在"kernel32.dll"这个文件中有Win32的API函数--WritePrivateProfileString()和GetPrivateProfileString()

C#读写ini文件实现之C#声明INI文件的写操作函数WritePrivateProfileString():

  1. [DllImport( "kernel32" )]  
  2.   private static extern long WritePrivateProfileString (
  3.  string section ,string key , string val   
  4. string filePath ) ; 

参数说明:

section:INI文件中的段落;

key:INI文件中的关键字;

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

filePath:INI文件的完整的路径和名称。

C#读写ini文件实现之C#申明INI文件的读操作函数GetPrivateProfileString():

  1. [DllImport("kernel32")]  
  2.  private static extern int GetPrivateProfileString (
  3.  string section ,  
  4.   string key , string def , StringBuilder retVal ,  
  5.   int size , string filePath ) ; 

参数说明:

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

key:INI文件中的关键字;

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

retVal:读取数值;

size:数值的大小;

filePath:INI文件的完整路径和名称。

下面是一个C#读写ini文件的类:
 

  1. public class INIClass  
  2. {  
  3.  public string inipath;  
  4.  [DllImport("kernel32")]  
  5.  private static extern long WritePrivateProfileString(
  6. string section,string key,string val,string filePath);  
  7.  [DllImport("kernel32")]  
  8.  private static extern int GetPrivateProfileString(
  9. string section,string key,
  10. string def,StringBuilder retVal,
  11. int size,string filePath);  
  12.  /// ﹤summary﹥  
  13.  /// 构造方法  
  14.  /// ﹤/summary﹥  
  15.  /// ﹤param name="INIPath"﹥文件路径﹤/param﹥  
  16.  public INIClass(string INIPath)  
  17.  {  
  18.   inipath = INIPath;  
  19.  }  
  20.  /// ﹤summary﹥  
  21.  /// 写入INI文件  
  22.  /// ﹤/summary﹥  
  23.  /// ﹤param name="Section"﹥项目名称(如 [TypeName] )﹤/param﹥  
  24.  /// ﹤param name="Key"﹥键﹤/param﹥  
  25.  /// ﹤param name="Value"﹥值﹤/param﹥  
  26.  public void IniWriteValue(string Section,string Key,string Value)  
  27.  {  
  28.   WritePrivateProfileString(Section,Key,Value,this.inipath);  
  29.  }  
  30.  /// ﹤summary﹥  
  31.  /// 读出INI文件  
  32.  /// ﹤/summary﹥  
  33.  /// ﹤param name="Section"﹥项目名称(如 [TypeName] )﹤/param﹥  
  34.  /// ﹤param name="Key"﹥键﹤/param﹥  
  35.  public string IniReadValue(string Section,string Key)  
  36.  {  
  37.   StringBuilder temp = new StringBuilder(500);  
  38.   int i = GetPrivateProfileString(Section,Key,"",temp,500,this.inipath);  
  39.   return temp.ToString();  
  40.  }  
  41.  /// ﹤summary﹥  
  42.  /// 验证文件是否存在  
  43.  /// ﹤/summary﹥  
  44.  /// ﹤returns﹥布尔值﹤/returns﹥  
  45.  public bool ExistINIFile()  
  46.  {  
  47.   return File.Exists(inipath);  
  48.  }  

C#读写ini文件的相关内容就向你介绍到这里,希望对你了解和学习C#读写ini文件有所帮助。

【编辑推荐】

  1. C#读文本文件的冰山一角
  2. C#读取文本文件时字符编码的处理
  3. C#读取TXT文件的代码实现
  4. C#读取配置文件浅析
  5. C#读取TXT文件图解
责任编辑:仲衡 来源: 博客园
相关推荐

2024-03-19 08:05:00

C# WinForm文件开发

2009-08-28 15:49:45

C#对INI文件操作

2009-08-12 14:13:51

C#读写Excel文件

2009-11-02 10:53:34

VB.NET INI文

2009-08-18 17:05:08

C#操作xml文件

2009-08-28 14:34:47

C# Global.a

2009-09-02 14:06:14

C#文件传送

2009-08-13 09:58:55

C#读取配置文件

2009-09-01 11:25:08

C#读取Word文件

2009-04-03 10:25:32

C#XML扩展代码

2009-08-14 16:08:34

读写BinaryC#编程实例

2010-07-16 09:06:57

Perl文件

2009-08-20 10:53:23

C#操作内存

2011-05-20 15:37:05

MemoryStrea

2009-08-26 11:53:56

C#打印文本文件

2009-08-14 17:09:48

C#引用类型

2009-09-01 18:35:53

C#判断文件存在

2009-07-30 18:20:21

C#继承

2009-09-07 16:13:56

C# MessageB

2009-09-01 16:07:04

C#命名规约
点赞
收藏

51CTO技术栈公众号