杰策网新功能正在紧张建设中……在线服务QQ:21004927,在线交流及技术讨论群:37665877,217688362,217688193。我们口号:帮助别人就是帮助自己!谢谢广大网友的支持!杰策网新域名:ijiece.com(爱杰策)

c# 使用WINAPI 进行读取写入配置文件

一键转帖: 分享杰策网至人人网  分享杰策网至开心网  分享杰策网至QQ空间  分享杰策网至新浪微博  分享杰策网至QQ书签  分享杰策网至豆瓣  分享杰策网至51  分享杰策网至Baidu搜藏  分享杰策网至Yahoo收藏  分享杰策网至Koudai分享  推荐给好友

c# 使用 WINAPI 进行读取写入配置文件

      我们 c# 读写配置文件通常用 IO 对文件进行读写。我觉得使用 winapi Kernel32.dll ini 文件读取更好更方便一些

       ini 文件读写 我们可以使用 Kernel32.dll 中的 WritePrivateProfileString (写入), GetPrivateProfileString (读入字符串) GetPrivateProfileInt (读入整型值)三个方法。下面我介绍着三个方法

       . 将信息写入 .INI 文件中 .

   1. 所用的 WINAPI 函数为 : WritePrivateProfileString  

Code
[DllImport( "Kernel32.dll" )]
        
public   static   extern   bool  WritePrivateProfileString( string  strAppName,
                                                            
string  strKeyName,
                                                            
string  strString,
                                                            
string  strFileName);

  其中各参数的意义 :
      string strAppName,
INI 文件中的一个字段名 .
      string strKeyName,
strAppName 下的一个键名 , 通俗讲就是变量名 .
      string strString,
是键值 , 也就是变量的值 (string 类型的 )
      string strFileName
是完整的 INI 文件路径名 .

     2.
具体使用方法 : 设我有一个网页刷新器 . 我要保存我设置的网页( URL ),和间隔时间( time

WritePrivateProfileString( "Settings" "Url" "http://www.qq.com" , "c:\\config.ini" );
WritePrivateProfileString(
"Settings" "Time" "20" , "c:\\config.ini" );

 保存的 ini 文件中的内容如下 :

[Settings]
Url=http:
//www.qq.com
Time= 20

 

 

  二 . 将信息从 INI 文件中读入程序中的变量 .

   1. 所用的 WINAPI 函数原型为 :

  

 

 

Code
[DllImport( "Kernel32.dll" )]
        
public   static   extern   int  GetPrivateProfileString( string  strAppName,
                                                         
string  strKeyName,
                                                         
string  strDefault,
                                                         StringBuilder sbReturnString,
                                                         
int  nSize,
                                                         
string  strFileName);

  其中各参数的意义 :

  前二个参数与 WritePrivateProfileString 中的意义一样 .

   strDefault : 如果 INI 文件中没有前两个参数指定的字段名或键名 , 则将此值赋给变量 .
 
  strReturnedString : 接收 INI 文件中的值的 string 对象 , 即目的缓存器 .
     nSize :
目的缓存器的大小 .
     strFileName :
是完整的 INI 文件路径名 .
2.
具体使用方法 : 现要将上一步中写入的信息读入程序中 .

 StringBuilder sb = new StringBuilder(256);

GetPrivateProfileString( "Settings" "Url" "http://" , sb,  256 ,c:\\config.ini ");
GetPrivateProfileString( "Settings" "Time" "10" , sb,  256 ,c:\\config.ini ");

  执行后 sb 的值为 :"http://www.qq.com", 若前两个参数有误 , 其值为 :"http://".

   3. 读入整型值要用另一个 WINAPI 函数  

Code
[DllImport( "Kernel32.dll" )]
        
public   static   extern   int  GetPrivateProfileInt( string  strAppName,
                                                       
string  strKeyName,
                                                       
int  nDefault,
                                                       
string  strFileName);

  这里的参数意义与上相同 . 使用方法也相同

网友咨询

   当前内容没有咨询! 马上发布咨询