日期:2014-05-17  浏览次数:20867 次

关于ini文件读写。 有问题。
用的是GetPrivateProfileString 这个方法

里面键位的值比较多, 就读不出来如何解决。
ini

------解决方案--------------------
引用:
下面是一个C#读写ini文件的类:

public class INIClass  
{  
 public string inipath;  
 [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"﹥文件路径﹤/param﹥  
 public INIClass(string INIPath)  
 {  
  inipath = INIPath;  
 }  
 /// ﹤summary﹥  
 /// 写入INI文件  
 /// ﹤/summary﹥  
 /// ﹤param name="Section"﹥项目名称(如 [TypeName] )﹤/param﹥  
 /// ﹤param name="Key"﹥键﹤/param﹥  
 /// ﹤param name="Value"﹥值﹤/param﹥  
 public void IniWriteValue(string Section,string Key,string Value)  
 {  
  WritePrivateProfileString(Section,Key,Value,this.inipath);  
 }  
 /// ﹤summary﹥  
 /// 读出INI文件  
 /// ﹤/summary﹥  
 /// ﹤param name="Section"﹥项目名称(如 [TypeName] )﹤/param﹥  
 /// ﹤param name="Key"﹥键﹤/param﹥  
 public string IniReadValue(string Section,string Key)  
 {  
  StringBuilder temp = new StringBuilder(500);  
  int i = GetPrivateProfileString(Section,Key,"",temp,500,this.inipath);  
  return temp.ToString();  
 }  
 /// ﹤summary﹥  
 /// 验证文件是否存在  
 /// ﹤/summary﹥  
 /// ﹤returns﹥布尔值﹤/returns﹥  
 public bool ExistINIFile()  
 {  
  return File.Exists(inipath);  
 }  


通知呀,你自己将缓冲区定义到500,超过500当然读不出来了