using system;
using system.io;
using system.runtime.interopservices;
using system.text;
using microsoft.win32;
namespace wjb.readorwriteiniandreg
{
 /// <summary>
 /// rwini 的摘要說明。
 /// 讀寫ini文件類
 /// 類庫開發(fā):吳劍冰
 /// 時(shí)間:2003年10月20日
 /// 功能:讀寫ini文件
 /// </summary>
 public class rwini
 {
 private static string filename;
 
 [dllimport("kernel32")]
 private static extern int getprivateprofileint(
 string lpappname,
 string lpkeyname,
 int ndefault,
 string lpfilename
 );
 [dllimport("kernel32")]
 private static extern int getprivateprofilestring(
 string lpappname,
 string lpkeyname,
 string lpdefault,
 stringbuilder lpreturnedstring,
 int nsize,
 string lpfilename
 );
 [dllimport("kernel32")]
 private static extern bool writeprivateprofilestring(
 string lpappname,
 string lpkeyname,
 string lpstring,
 string lpfilename
 );
 
 /// <summary>
 ///構(gòu)造讀寫全路徑為filename的ini文件的類
 /// </summary>
 /// <param name="filename"></param>
 public rwini(string filename)
 {
 //
 // 構(gòu)造函數(shù)
 //
 filename=filename;
 }
 /// <summary>
 /// 讀取整型數(shù)據(jù) 
 /// </summary>
 /// <param name="section"></param>
 /// <param name="key"></param>
 /// <param name="def"></param>
 /// <returns></returns>
 public int getint(string section,string key,int def)
 {
 return getprivateprofileint(section,key,def,filename);
 } 
 /// <summary>
 /// 讀取字符串?dāng)?shù)據(jù)
 /// </summary>
 /// <param name="section"></param>
 /// <param name="key"></param>
 /// <param name="def"></param>
 /// <returns></returns>
 public string getstring(string section,string key,string def)
 {
 stringbuilder temp=new stringbuilder(1024);
 getprivateprofilestring(section,key,def,temp,1024,filename);
 return temp.tostring();
 }
 /// <summary>
 /// 寫入整型數(shù)據(jù)
 /// </summary>
 /// <param name="section"></param>
 /// <param name="key"></param>
 /// <param name="ival"></param>
 public void writeint(string section,string key,int ival)
 {
 writeprivateprofilestring(section,key,ival.tostring(),filename);
 }
 /// <summary>
 /// 寫入字符串?dāng)?shù)據(jù)
 /// </summary>
 /// <param name="section"></param>
 /// <param name="key"></param>
 /// <param name="strval"></param>
 public void writestring(string section,string key,string strval)
 {
 writeprivateprofilestring(section,key,strval,filename);
 }
 /// <summary>
 /// 刪除鍵值
 /// </summary>
 /// <param name="section"></param>
 /// <param name="key"></param>
 public void delkey(string section,string key)
 {
 writeprivateprofilestring(section,key,null,filename);
 }
 /// <summary>
 /// 刪除模塊
 /// </summary>
 /// <param name="section"></param>
 public void delsection(string section)
 {
 writeprivateprofilestring(section,null,null,filename);
 }
 }
}