因为一直想开发一个软件,为此而努力着!需要用到这方面小内容,
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();
}
|