在这里插入图片描述

读写ini文件

方法一

读写INI文件在C#中可以通过多种方式实现,其中一种常见的方法是使用System.Runtime.InteropServices命名空间中的GetPrivateProfileStringWritePrivateProfileString函数,这些函数实际上是Windows API函数。

实例

下面是一个完整的C#示例代码,展示如何读写INI文件:

using System;
using System.Runtime.InteropServices;
using System.Text;

class IniFile
{
    public string Path;

    [DllImport("kernel32", CharSet = CharSet.Unicode)]
    private static extern long WritePrivateProfileString(string section, string key, string val, string filePath);

    [DllImport("kernel32", CharSet = CharSet.Unicode)]
    private static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath);

    public IniFile(string path)
    {
        Path = path;
    }

    public void Write(string section, string key, string value)
    {
        WritePrivateProfileString(section, key, value, Path);
    }

    public string Read(string section, string key)
    {
        StringBuilder retVal = new StringBuilder(255);
        GetPrivateProfileString(section, key, "", retVal, 255, Path);
        return retVal.ToString();
    }
}

class Program
{
    static void Main(string[] args)
    {
        string iniPath = "test.ini";
        IniFile ini = new IniFile(iniPath);

        // 写入数据
        ini.Write("Settings", "Username", "User123");
        ini.Write("Settings", "Password", "Pass123");

        // 读取数据
        string username = ini.Read("Settings", "Username");
        string password = ini.Read("Settings", "Password");

        Console.WriteLine("Username: " + username);
        Console.WriteLine("Password: " + password);
    }
}

代码说明

  1. 声明API函数:通过DllImport属性将Windows API函数GetPrivateProfileStringWritePrivateProfileString引入到C#中。
    [DllImport("kernel32", CharSet = CharSet.Unicode)]
    private static extern long WritePrivateProfileString(string section, string key, string val, string filePath);
    
    [DllImport("kernel32", CharSet = CharSet.Unicode)]
    private static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath);
    

方法二

IniFile类:创建一个IniFile类来封装INI文件的读写操作。 ```csharp class IniFile { public string Path;

    public IniFile(string path)
    {
        Path = path;
    }

    public void Write(string section, string key, string value)
    {
        WritePrivateProfileString(section, key, value, Path);
    }

    public string Read(string section, string key)
    {
        StringBuilder retVal = new StringBuilder(255);
        GetPrivateProfileString(section, key, "", retVal, 255, Path);
        return retVal.ToString();
    }
}
```

主程序:在Main方法中,创建IniFile对象并进行读写操作。 ```csharp class Program { static void Main(string[] args) { string iniPath = "test.ini"; IniFile ini = new IniFile(iniPath);

        // 写入数据
        ini.Write("Settings", "Username", "User123");
        ini.Write("Settings", "Password", "Pass123");

        // 读取数据
        string username = ini.Read("Settings", "Username");
        string password = ini.Read("Settings", "Password");

        Console.WriteLine("Username: " + username);
        Console.WriteLine("Password: " + password);
    }
}
```

通过以上代码,你可以在C#中轻松实现对INI文件的读写操作。


结束语 Flutter是一个由Google开发的开源UI工具包,它可以让您在不同平台上创建高质量、美观的应用程序,而无需编写大量平台特定的代码。我将学习和深入研究Flutter的方方面面。从基础知识到高级技巧,从UI设计到性能优化,欢饮关注一起讨论学习,共同进入Flutter的精彩世界!