欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C# 读取INI文件

程序员文章站 2022-06-29 08:49:54
废话不多说,直接上代码 1:引入命名空间 System.Runtime.InteropServices System.IO 2:写一个类 iniHelper public class IniHelper { [DllImport("kernel32")]//返回0表示失败,非0为成功 private ......

废话不多说,直接上代码

1:引入命名空间
system.runtime.interopservices
system.io
2:写一个类 inihelper

public class inihelper
{
    [dllimport("kernel32")]//返回0表示失败,非0为成功
    private static extern long writeprivateprofilestring(string section, string key, string val, string filepath);
    [dllimport("kernel32")]//返回取得字符串缓冲区的长度
    private static extern long getprivateprofilestring(string section, string key, string def, stringbuilder retval, int size, string filepath);

    /// <summary>
    /// 读取ini文件
    /// </summary>
    /// <param name="section">名称</param>
    /// <param name="key">关键字</param>
    /// <param name="defaulttext">默认值</param>
    /// <param name="inifilepath">ini文件地址</param>
    /// <returns></returns>
    public static string getvalue(string section, string key, string defaulttext, string inifilepath)
    {
        if (file.exists(inifilepath))
        {
            stringbuilder temp = new stringbuilder(1024);
            getprivateprofilestring(section, key, defaulttext, temp, 1024, inifilepath);
            return temp.tostring();
        }
        else
        {
            return defaulttext;
        }
    }

    /// <summary>
    /// 写入ini文件
    /// </summary>
    /// <param name="section">名称</param>
    /// <param name="key">关键字</param>
    /// <param name="defaulttext">默认值</param>
    /// <param name="inifilepath">ini文件地址</param>
    /// <returns></returns>
    public static bool setvalue(string section, string key, string value, string inifilepath)
    {
        var pat = path.getdirectoryname(inifilepath);
        if (directory.exists(pat) == false)
        {
            directory.createdirectory(pat);
        }
        if (file.exists(inifilepath) == false)
        {
            file.create(inifilepath).close();
        }
        long opstation = writeprivateprofilestring(section, key, value, inifilepath);
        if (opstation == 0)
        {
            return false;
        }
        else
        {
            return true;
        }
    }
}

5:可以手动新建ini文件,也可自动创建ini文件,博=主比较懒,直接手动创建的

我ini文件是这样配置的:

    [我的数据]    
    myid=9527

4:直接调用
string myid = console.readline();
//写入文件
string file = system.environment.currentdirectory + @"\config.ini";
if (file!=null)
{
inihelper.setvalue("我的数据", "myid", myid, file);
}
console.writeline("我输入的id为{0}",myid);
//读取文件
if (file != null)
{
myid = inihelper.getvalue("我的数据", "myid", "", file);
console.writeline("我读取到的id为{0}"+myid);
console.readline();
}