你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:技术专栏 / C专栏
C#对INI文件的读写
 
因为一直想开发一个软件,为此而努力着!需要用到这方面小内容,
 
INI文件的结构
INI文件是一种按照特点方式排列的文本文件。每一个INI文件构成都非常类似,由若干段落(section)组成,在每个带括号的标题下面,是若干个以单个单词开头的关键词(keyword)和一个等号,等号右边的就是关键字对应的值(value)。其一般形式如下:
 
[Section1]
KeyWord1 = Valuel
KeyWord2 = Value2
……
[Section2]
KeyWord3 = Value3
KeyWord4 = Value4
2.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();
        }
经典小demo:
 
ini文件一般用于保存当前运行的程序或者一些临时的配置属性的文件。也有时用于保存一定的数据以便于临时或者配置上的需要。
 
文本格式如下:
 
 
 
[Section1 Name] ---------用 []括起来,其包含多个key KeyName1=value1 ------格式是 Key=value。 KeyName2=value2 ... [Section2 Name] KeyName1=value1 KeyName2=value2
C#操作时代码如下:
// 打开指定的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();
        }
  推荐精品文章

·2024年9月目录 
·2024年8月目录 
·2024年7月目录 
·2024年6月目录 
·2024年5月目录 
·2024年4月目录 
·2024年3月目录 
·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录
·2023年10月目录
·2023年9月目录 
·2023年8月目录 

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089