C# Winform 调用系统接口操作 INI 配置文件的代码

关于C# Winform调用系统接口操作INI配置文件的代码,下面是详细的攻略:

1. 什么是INI文件

INI文件是一种配置文件格式,全称叫做Initial file,是一种比较老式的配置文件格式。它的结构非常简单,通常包含了若干个节(section)和各个节下的键值对(key-value pair)。INI文件的格式如下:

[section1]
key1=value1
key2=value2

[section2]
key1=value1
key2=value2

INI文件格式的优点是比较简单易懂,缺点是没有像JSON或者XML这类格式那样的结构化嵌套,不够灵活。

2. C# Winform调用系统接口操作INI文件

在C# Winform中,调用系统接口来操作INI文件的方式主要有以下几种:

2.1 使用Kernel32.dll文件

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

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

public string ReadIni(string sectionName, string keyName, string fileName)
{
    StringBuilder temp = new StringBuilder(1024);
    GetPrivateProfileString(sectionName, keyName, "", temp, 1024, fileName);
    return temp.ToString();
}

public bool WriteIni(string sectionName, string keyName, string keyValue, string path)
{
    try
    {
        WritePrivateProfileString(sectionName, keyName, keyValue, path);
        return true;
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.ToString());
        return false;
    }
}

2.2 使用System.Configuration.Ini配置文件

using System.Configuration;
using System.IO;

public string ReadIni(string section, string key, string defValue, string filePath)
{
    var fileMap = new ExeConfigurationFileMap()
    {
        ExeConfigFilename = filePath
    };
    Configuration config = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None);
    string value = config.AppSettings.Settings[section + "." + key].Value;
    return value ?? defValue;
}

public void WriteIni(string section, string key, string value, string filePath)
{
    var fileMap = new ExeConfigurationFileMap()
    {
        ExeConfigFilename = filePath
    };
    Configuration config = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None);
    config.AppSettings.Settings[section + "." + key].Value = value;
    config.Save(ConfigurationSaveMode.Modified);
}

2.3 使用Ini类库

using IniParser;
using IniParser.Model;

public string ReadIni(string sectionName, string keyName, string filePath)
{
    var parser = new FileIniDataParser();
    IniData data = parser.ReadFile(filePath);
    string value = data[sectionName][keyName];
    return value;
}

public void WriteIni(string sectionName, string keyName, string keyValue, string filePath)
{
    var parser = new FileIniDataParser();
    IniData data = parser.ReadFile(filePath);
    data[sectionName][keyName] = keyValue;
    parser.WriteFile(filePath, data);
}

3. 示例使用说明

以第二种方法为例,假如我们有一个配置文件config.ini,其内容如下:

[database]
host=127.0.0.1
port=3306
database=test_db
username=root
password=password

现在我们想要在Winform应用程序中读取并显示这些配置项的值,可以这样做:

string host = ReadIni("database", "host", "127.0.0.1", "config.ini");
string port = ReadIni("database", "port", "3306", "config.ini");
string database = ReadIni("database", "database", "test_db", "config.ini");
string username = ReadIni("database", "username", "root", "config.ini");
string password = ReadIni("database", "password", "password", "config.ini");

textBoxHost.Text = host;
textBoxPort.Text = port;
textBoxDatabase.Text = database;
textBoxUsername.Text = username;
textBoxPassword.Text = password;

当然,也可以通过Winform控件来让用户自己选择配置文件的路径,并读取相应的配置项:

private void buttonBrowse_Click(object sender, EventArgs e)
{
    openFileDialog1.InitialDirectory = Application.StartupPath;
    if (openFileDialog1.ShowDialog() == DialogResult.OK)
    {
        string path = openFileDialog1.FileName;
        textBoxFilePath.Text = path;

        string host = ReadIni("database", "host", "127.0.0.1", path);
        string port = ReadIni("database", "port", "3306", path);
        string database = ReadIni("database", "database", "test_db", path);
        string username = ReadIni("database", "username", "root", path);
        string password = ReadIni("database", "password", "password", path);

        textBoxHost.Text = host;
        textBoxPort.Text = port;
        textBoxDatabase.Text = database;
        textBoxUsername.Text = username;
        textBoxPassword.Text = password;
    }
}

以上就是C# Winform调用系统接口操作INI文件的完整攻略,包含了三种方式的代码示例和具体使用方法的说明。如果还有不明白的地方,欢迎继续提问。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C# Winform 调用系统接口操作 INI 配置文件的代码 - Python技术站

(0)
上一篇 2023年6月7日
下一篇 2023年6月7日

相关文章

  • 详解log4net的使用

    详解log4net的使用 log4net 是一种流行的 .NET 平台的日志记录框架,它可以记录各种级别的日志消息,并支持多种输出方式。本文将为你介绍如何在你的 .NET 项目中使用 log4net,实现灵活的日志记录功能。 安装log4net log4net 可以通过 NuGet 包管理器安装,只需要在 Visual Studio 中打开 “NuGet 包…

    C# 2023年5月31日
    00
  • C#程序中使用LINQ to XML来查询XML格式数据的实例

    以下是“C#程序中使用LINQ to XML来查询XML格式数据的实例”的完整攻略。 1. 确认查询目标 在使用LINQ to XML来查询XML格式数据时,首先需要确认需要查询的XML文件或者XML片段,以及需要查询哪些节点。 例如,我们有以下XML文件: <?xml version="1.0" encoding="ut…

    C# 2023年6月1日
    00
  • 详解ASP.NET中Session的用法

    下面是详解ASP.NET中Session的用法的完整攻略: 什么是Session Session是ASP.NET中一个重要的状态管理机制,用于在Web应用程序中存储和使用用户特定的数据。Session数据存储在服务器上,以确保对敏感信息的控制和安全性。Session生命周期从用户第一次访问Web站点开始,直到用户关闭浏览器或Session超时为止。Sessi…

    C# 2023年5月31日
    00
  • .Net Core读取文件时中文乱码问题的解决方法分享

    .NET Core读取文件时中文乱码问题的解决方法分享 在.NET Core中,读取文件时中文乱码是一个常见的问题。在本攻略中,我们将详细讲解.NET Core读取文件时中文乱码问题的解决方法,并提供两个示例说明。 步骤一:使用正确的编码方式读取文件 在.NET Core中,您需要使用正确的编码方式读取文件,以避免中文乱码问题。以下是使用正确的编码方式读取文…

    C# 2023年5月17日
    00
  • golang判断结构体为空的问题

    判断一个结构体变量是否为空,首先要定义什么叫做一个空的结构体变量。通常来说,我们认为一个结构体变量只有所有成员变量的值都等于其类型的零值时,才认为是一个空的结构体变量。 在Go语言中,结构体类型是值类型,因此如果一个结构体变量没有经过初始化,那么其所有成员变量的值都会等于其类型的零值。如果我们想要判断一个结构体变量是否为空,那么最简单的方法就是判断其所有成员…

    C# 2023年6月6日
    00
  • C#WinForm实现多语言切换的示例

    对于C# WinForm实现多语言切换,以下是完整攻略: 1. 准备工作 首先要在项目中添加多语言资源文件,以便在程序中能够进行语言切换。具体步骤为: 在项目中右键,选择“添加” -> “新建项”; 在弹出的窗口中选择“资源文件”; 命名资源文件,例如Resources.zh-cn.resx,其中“.zh-cn”代表中文简体资源,如果需要支持其他语言可…

    C# 2023年6月1日
    00
  • vb.net与c#相互转换工具 网站地址列表

    下面就来详细讲解一下“vb.net与c#相互转换工具 网站地址列表”的完整攻略。 网站介绍 “vb.net与c#相互转换工具 网站地址列表”是一个旨在帮助开发者快速转换vb.net代码与c#代码的在线工具网站。它提供了vb.net代码转换成c#代码、c#代码转换成vb.net代码两种功能。 使用说明 转换方式 在网站的主页中,用户可以选择在“VB.NET代码…

    C# 2023年6月3日
    00
  • ASP.NET Core项目配置教程(6)

    ASP.NET Core项目配置教程(6)主要涉及如何在ASP.NET Core项目中使用配置文件。下面是ASP.NET Core项目配置教程(6)的完整攻略。 什么是配置文件? 在ASP.NET Core中,配置文件是一种存储应用程序配置信息的机制。配置文件可以包含应用程序的各种设置,例如数据库连接字符串、日志记录级别、身份验证设置等。 如何使用配置文件?…

    C# 2023年5月16日
    00
合作推广
合作推广
分享本页
返回顶部