以下是一个INI文件读写类
public class IniFile
{
//API声明
[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);
[DllImport("kernel32")]
private static extern int GetPrivateProfileInt(string section,
string key,int def,string filePath);
[DllImport("kernel32")]
private static extern bool  GetPrivateProfileStruct(string section,
string key,ref object lpStruct ,int uSizeStruct,string filePath);
[DllImport("kernel32")]
private static extern bool  WritePrivateProfileStruct(string section,
string key,ref  object lpStruct ,int uSizeStruct,string filePath);
//API声明结束
private string path;

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 WriteString(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 ReadString(string Section,string Key,string def,int sum) {
StringBuilder temp = new StringBuilder(sum);
int i = GetPrivateProfileString(Section,Key,def,temp, 
sum, this.path);
return temp.ToString();
}
public int ReadInt(string Section,string Key,int def) {
int i = GetPrivateProfileInt(Section,Key,def, this.path);
return i;
}

public bool  ReadStruct(string Section,string Key,ref object lpStruct,int uSizeStruct)
{
bool flg=true;
       GetPrivateProfileStruct( Section, Key,ref lpStruct ,uSizeStruct,this.path);

return flg;
}
public bool WriteStruct (string Section,string Key,ref  object lpStruct,int uSizeStruct)
{
bool flg=WritePrivateProfileStruct(Section,Key, ref lpStruct, uSizeStruct,this.path);
return flg;
}}

解决方案 »

  1.   

    /// <summary>
    /// Ini文件操作的类
    /// </summary>
    public class IniFile
    {
    public string path;     //INI文件名 //声明读写INI文件的API函数    
    [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>
    /// 类的构造函数
    /// </summary>
    /// <param name="INIPath">INI文件名</param>
    public IniFile(string INIPath)
    {
    path = INIPath;
    } /// <summary>
    /// 写INI文件 
    /// </summary>
    /// <param name="Section">节</param>
    /// <param name="Key">关键字</param>
    /// <param name="Value">值</param>
    public void WriteValue(string Section,string Key,string Value)
    {
    WritePrivateProfileString(Section,Key,Value,this.path);
    }
    /// <summary>
    /// 写INI文件 
    /// </summary>
    /// <param name="Section">节</param>
    /// <param name="Key">关键字</param>
    /// <param name="Value">值</param>
    /// <param name="path">ini文件所以路径</param>
    public static void WriteValue(string Section,string Key,string Value,string path)
    {
    WritePrivateProfileString(Section,Key,Value,path);
    }
    /// <summary>
    /// 读取INI文件指定
    /// </summary>
    /// <param name="Section">节</param>
    /// <param name="Key">关键字</param>
    /// <returns>指定节-关键字的值</returns>
    public string ReadValue(string Section,string Key)
    {
    StringBuilder temp = new StringBuilder(255);
    int i = GetPrivateProfileString(Section,Key,"",temp,255,this.path);
    return temp.ToString();
    } /// <summary>
    /// 读取INI文件指定
    /// </summary>
    /// <param name="Section">节</param>
    /// <param name="Key">关键字</param>
    /// <returns>指定节-关键字的值</returns>
    /// <param name="path">ini文件所在路径</param>
    public string ReadValue(string Section,string Key,string path)
    {
    StringBuilder temp = new StringBuilder(255);
    int i = GetPrivateProfileString(Section,Key,"",temp,255,path);
    return temp.ToString();
    } }