ini文件的控制

网上有n多关于
  [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);

这两个function的介绍。
现在想要取ini文件节里的所有key和value列表就找到了这个
  [DllImport("kernel32.dll", SetLastError=true)]
  private static extern int GetPrivateProfileSectionA ( string lpAppName, [MarshalAs(UnmanagedType.LPArray)] byte[] lpReturnedString, int nSize, string lpFileName) ;
网上有介绍,这里要记的是它取回的lpReturnedString里分隔符是(Char)0,这个可是String类型的结尾符,只能做个处理
   byte[] b = new byte[102400];
   GetPrivateProfileSectionA("test", b, int.MaxValue, @"D:/test/aa.ini");
   
   string s = "";
   for(int i = 0; i <= b.Length - 1; i++)
   {
    if (b[i] != 0)
    {
     s += (char)b[i];
    }
    else
    {
     if (s[s.Length -1] != '~')
     {
      s += "~";
     }
    }
   }
给它换成以~分隔的string再做它用,麻烦!! 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值