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
 
posted @ 2014-07-04 12:18  门罗的魔术师  阅读(255)  评论(0编辑  收藏  举报