C#中读取配置文件ini中的所有Section 以及制定Section下的所有Keys

      
首先 导入dll;调用制定函数
   [DllImport( "kernel32" )]

         private  static  extern  uint  GetPrivateProfileString(
             string  lpAppName,  // points to section name
             string  lpKeyName,  // points to key name
             string  lpDefault,  // points to default string
             byte [] lpReturnedString,  // points to destination buffer
             uint  nSize,  // size of destination buffer
             string  lpFileName   // points to initialization filename
         ); 
 
         /// <summary>
         /// 读取section
         /// </summary>
         /// <param name="Strings"></param>
         /// <returns></returns>
         public  List< string > ReadSections( string  iniFilename)
         {
             List< string > result =  new  List< string >();
             byte [] buf =  new  byte [65536];
             uint  len = GetPrivateProfileString( null null null , buf, ( uint )buf.Length, iniFilename);
             int j  = 0;
             for  ( int  i = 0; i < len; i++)
                 if  (buf[i] == 0)
                 {
                     result.Add(Encoding.Default.GetString(buf, j, i -j));
                     j = i + 1;
                 }
             return  result;
         }
 
         /// <summary>
         /// 读取指定区域Keys列表。
         /// </summary>
         /// <param name="Section"></param>
         /// <param name="Strings"></param>
         /// <returns></returns>
         public  List< string > ReadSingleSection( string  Section,  string  iniFilename)
         {
             List< string > result =  new  List< string >();
             byte [] buf =  new  byte [65536];
             uint  lenf = GetPrivateProfileString(Section,  null null , buf, ( uint )buf.Length, iniFilename);
             int  j = 0;
             for  ( int  i = 0; i < lenf; i++)
                 if  (buf[i] == 0)
                 {
                     result.Add(Encoding.Default.GetString(buf, j, i - j));
                     j = i + 1;
                 }
             return  result;
         }
 
        
         /// <param name="sender"></param>
        
         private  void  button1_Click( object  sender, EventArgs e)
         {
             string  iniFilename =  @"C:\a.ini" ;
             List< string > sectionList = ReadSections(iniFilename);
            
         }
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值