c#实现ini文件读写类分享
///<summary>
///读写INI文件的类。
///</summary>
publicclassINIHelper
{
//读写INI文件相关。
[DllImport("kernel32.dll",EntryPoint="WritePrivateProfileString",CharSet=CharSet.Ansi)]
publicstaticexternlongWritePrivateProfileString(stringsection,stringkey,stringval,stringfilePath);
[DllImport("kernel32.dll",EntryPoint="GetPrivateProfileString",CharSet=CharSet.Ansi)]
publicstaticexternintGetPrivateProfileString(stringsection,stringkey,stringdef,StringBuilderretVal,intsize,stringfilePath);
[DllImport("kernel32.dll",EntryPoint="GetPrivateProfileSectionNames",CharSet=CharSet.Ansi)]
publicstaticexternintGetPrivateProfileSectionNames(IntPtrlpszReturnBuffer,intnSize,stringfilePath);
[DllImport("KERNEL32.DLL",EntryPoint="GetPrivateProfileSection",CharSet=CharSet.Ansi)]
publicstaticexternintGetPrivateProfileSection(stringlpAppName,byte[]lpReturnedString,intnSize,stringfilePath);
///<summary>
///向INI写入数据。
///</summary>
///<PARAMname="Section">节点名。</PARAM>
///<PARAMname="Key">键名。</PARAM>
///<PARAMname="Value">值名。</PARAM>
publicstaticvoidWrite(stringSection,stringKey,stringValue,stringpath)
{
WritePrivateProfileString(Section,Key,Value,path);
}
///<summary>
///读取INI数据。
///</summary>
///<PARAMname="Section">节点名。</PARAM>
///<PARAMname="Key">键名。</PARAM>
///<PARAMname="Path">值名。</PARAM>
///<returns>相应的值。</returns>
publicstaticstringRead(stringSection,stringKey,stringpath)
{
StringBuildertemp=newStringBuilder(255);
inti=GetPrivateProfileString(Section,Key,"",temp,255,path);
returntemp.ToString();
}
///<summary>
///读取一个ini里面所有的节
///</summary>
///<paramname="sections"></param>
///<paramname="path"></param>
///<returns></returns>
publicstaticintGetAllSectionNames(outstring[]sections,stringpath)
{
intMAX_BUFFER=32767;
IntPtrpReturnedString=Marshal.AllocCoTaskMem(MAX_BUFFER);
intbytesReturned=GetPrivateProfileSectionNames(pReturnedString,MAX_BUFFER,path);
if(bytesReturned==0)
{
sections=null;
return-1;
}
stringlocal=Marshal.PtrToStringAnsi(pReturnedString,(int)bytesReturned).ToString();
Marshal.FreeCoTaskMem(pReturnedString);
//useofSubstringbelowremovesterminatingnullforsplit
sections=local.Substring(0,local.Length-1).Split("\0");
return0;
}
///<summary>
///得到某个节点下面所有的key和value组合
///</summary>
///<paramname="section"></param>
///<paramname="keys"></param>
///<paramname="values"></param>
///<paramname="path"></param>
///<returns></returns>
publicstaticintGetAllKeyValues(stringsection,outstring[]keys,outstring[]values,stringpath)
{
byte[]b=newbyte[65535];
GetPrivateProfileSection(section,b,b.Length,path);
strings=System.Text.Encoding.Default.GetString(b);
string[]tmp=s.Split((char)0);
ArrayListresult=newArrayList();
foreach(stringrintmp)
{
if(r!=string.Empty)
result.Add(r);
}
keys=newstring[result.Count];
values=newstring[result.Count];
for(inti=0;i<result.Count;i++)
{
string[]item=result[i].ToString().Split(newchar[]{"="});
if(item.Length==2)
{
keys[i]=item[0].Trim();
values[i]=item[1].Trim();
}
elseif(item.Length==1)
{
keys[i]=item[0].Trim();
values[i]="";
}
elseif(item.Length==0)
{
keys[i]="";
values[i]="";
}
}
return0;
}
}
相关文章
- 【愚公系列】2023年01月 .NET/C#知识点-文件上传与下载
- c#通过操作mongodb gridfs实现文件的数据库存储详解编程语言
- c#中实现文件拖放打开的方法
- 用C#把文件转换为XML的代码
- asp.net(c#)中取得文件物理路径
- asp.net(C#)中上传大文件的几中常见应用方法
- c#调用.bat文件的实现代码
- C#下载文件(TransmitFile/WriteFile/流方式)实例介绍
- C#中XmlTextWriter读写xml文件详细介绍
- C#对XML文件的各种操作实现方法
- c#文件的复制,移动,创建(实例代码)
- C#中分部类和分部方法的应用
- C#删除文件目录或文件的解决方法
- C#中通过API实现的打印类实例代码
- c#读取文件详谈
- c#实现数据同步的方法(使用文件监控对象filesystemwatcher)
- C#webapi返回类型设置为json的两种方法
- c#判断指定文件是否存在的简单实现
- c#正反序列化XML文件示例(xml序列化)
- c#连接mdf文件示例分享
- c#使用file.copy实现文件备份示例
- c#文件的I/O基本操作
- C#中在WebClient中使用post发送数据实现方法
- C#读取文件MD5值的实现代码
- asp.net(C#)禁止缓存文件不让文件缓存到客户端
- C#实现对图片文件的压缩、裁剪操作实例