转载:http://www.codeproject.com/Articles/1966/An-INI-file-handling-class-using-C
An INI file handling class using C#
Introduction
I created a C# class Ini
which exposes 2 functions from KERNEL32.dll. These functions are:WritePrivateProfileString
and GetPrivateProfileString
Namespaces you will need: System.Runtime.InteropServices
and System.Text
The Class
using System;
using System.Runtime.InteropServices;
using System.Text;
namespace Ini
{
/// <summary>
/// Create a New INI file to store or load data
/// </summary>
public class IniFile
{
public string path;
[DllImport("kernel32")]
private static extern long WritePrivateProfileString(string section,
string key,string val,string filePath);
[DllImport("kernel32")]
private static extern int GetPrivateProfileString(string section,
string key,string def, StringBuilder retVal,
int size,string filePath);
/// <summary>
/// INIFile Constructor.
/// </summary>
/// <PARAM name="INIPath"></PARAM>
public IniFile(string INIPath)
{
path = INIPath;
}
/// <summary>
/// Write Data to the INI File
/// </summary>
/// <PARAM name="Section"></PARAM>
/// Section name
/// <PARAM name="Key"></PARAM>
/// Key Name
/// <PARAM name="Value"></PARAM>
/// Value Name
public void IniWriteValue(string Section,string Key,string Value)
{
WritePrivateProfileString(Section,Key,Value,this.path);
}
/// <summary>
/// Read Data Value From the Ini File
/// </summary>
/// <PARAM name="Section"></PARAM>
/// <PARAM name="Key"></PARAM>
/// <PARAM name="Path"></PARAM>
/// <returns></returns>
public string IniReadValue(string Section,string Key)
{
StringBuilder temp = new StringBuilder(255);
int i = GetPrivateProfileString(Section,Key,"",temp,
255, this.path);
return temp.ToString();
}
}
}
Using the class
Steps to use the Ini
class:
- In your project namespace definition add
using INI;
- Create a INIFile like this
INIFile ini = new INIFile("C:\\test.ini");
- Use
IniWriteValue
to write a new value to a specific key in a section or useIniReadValue
to read a value FROM a key in a specific Section.
That's all. It's very easy in C# to include API functions in your class(es).
License
This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.
A list of licenses authors might use can be found here