C#对INI文件的读写
INI文件的结构
INI文件是一种按照特点方式排列的文本文件。每一个INI文件构成都非常类似,由若干段落(section)组成,在每个带括号的标题下面,是若干个以单个单词开头的关键词(keyword)和一个等号,等号右边的就是关键字对应的值(value)。其一般形式如下:
[Section1]
KeyWord1 = Valuel
KeyWord2 = Value2
……
[Section2]
KeyWord3 = Value3
KeyWord4 = Value4
C#和Win32 API函数
C#并不像C++,拥有属于自己的类库。C#使用的类库是.Net框架为所有.Net程序开发提供的一个共有的类库——.Net FrameWork SDK。虽然.Net FrameWork SDK内容十分庞大,功能也非常强大,但还不能面面俱到,至少它并没有提供直接操作INI文件所需要的相关的类。在本文中,C#操作INI文件使用的是Windows系统自带Win32的API函数——WritePrivateProfileString()和GetPrivateProfileString()函数。
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文件的完整路径和名称。
#操作时代码如下:
// 打开指定的ini文件 private void button1_Click(object sender, System.EventArgs e) { try { openFileDialog1.ShowDialog(); textBox1.Text = openFileDialog1.FileName; } catch (Exception ex) { MessageBox.Show(ex.Message); } } //写入INI文件 private void button2_Click(object sender, System.EventArgs e) { string FileName = textBox1.Text; string section = textBox2.Text; string key = textBox3.Text; string keyValue = textBox4.Text; try { //写入ini文件属性 WritePrivateProfileString(section, key, keyValue, FileName); MessageBox.Show(“成功写入INI文件!”, ”信息”); } catch (Exception ex) { MessageBox.Show(ex.Message); } } //读取指定INI文件的特定段落中的关键字的数值 private void button3_Click(object sender, System.EventArgs e) { StringBuilder temp = new StringBuilder(255); string FileName = textBox1.Text; string section = textBox2.Text; string key = textBox3.Text; //读取ini文件属性值—赋予当前属性上temp int i = GetPrivateProfileString(section, key, ”无法读取对应数值!”, temp, 255, FileName); //显示读取的数值 textBox4.Text = temp.ToString(); }
ini文件一般用于保存当前运行的程序或者一些临时的配置属性的文件。也有时用于保存一定的数据以便于临时或者配置上的需要。
http://blog.sina.com.cn/s/blog_9e8dc589010143he.html