LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

C# WinForm程序中读写INI配置文件的技术详解

admin
2024年3月26日 18:36 本文热度 493

在C# WinForm应用程序中,INI文件常被用作简单的配置文件,用于存储应用程序的设置和参数。INI文件是一种文本文件,其结构通常包括节(Sections)和键值对(Key-Value Pairs)。每个节都包含一个或多个键值对,用于存储相关的配置信息。

本文将介绍如何在C# WinForm程序中读取和写入INI配置文件,包括创建INI文件、读取INI文件中的数据以及向INI文件中写入数据。

一、INI文件的基本结构

INI文件的基本结构非常简单,由节(Sections)和键值对(Key-Value Pairs)组成。每个节由方括号包围,例如[SectionName],而键值对则是以等号=分隔的字符串,例如Key=Value。下面是一个简单的INI文件示例:

[AppSettings]
Setting1=Value1
Setting2=Value2

[Database]
Server=localhost
Port=3306

在这个示例中,有两个节:AppSettingsDatabase。每个节下都有一些键值对,用于存储配置信息。

二、读取INI文件中的数据

在C#中,可以使用System.Configuration命名空间下的IniFile类或者System.IO命名空间下的文件操作方法来读取INI文件中的数据。这里我们使用System.IO的方法来实现。

using System;
using System.IO;
using System.Text;
using System.Collections.Generic;

public class IniFileReader
{
    private string filePath;

    public IniFileReader(string filePath)
    {
        this.filePath = filePath;
    }

    public string ReadValue(string section, string key)
    {
        string value = string.Empty;
        if (File.Exists(filePath))
        {
            var lines = File.ReadAllLines(filePath, Encoding.Default);
            foreach (var line in lines)
            {
                var trimmedLine = line.Trim();
                if (trimmedLine.StartsWith("[") && trimmedLine.EndsWith("]"))
                {
                    var currentSection = trimmedLine.Substring(1, trimmedLine.Length - 2);
                    if (currentSection == section)
                    {
                        var keyValue = line.Split('=');
                        if (keyValue.Length == 2 && keyValue[0].Trim() == key)
                        {
                            value = keyValue[1].Trim();
                            break;
                        }
                    }
                }
            }
        }
        return value;
    }
}

使用上述IniFileReader类,你可以像下面这样读取INI文件中的数据:

var reader = new IniFileReader("path_to_your_file.ini");
string setting1Value = reader.ReadValue("AppSettings""Setting1");
Console.WriteLine(setting1Value); // 输出: Value1

三、向INI文件中写入数据

向INI文件中写入数据同样可以使用System.IO命名空间下的文件操作方法来实现。下面是一个简单的示例:

using System;
using System.IO;
using System.Text;

public class IniFileWriter
{
    private string filePath;

    public IniFileWriter(string filePath)
    {
        this.filePath = filePath;
    }

    public void WriteValue(string section, string key, string value)
    {
        var lines = new List<string>();
        bool isSectionFound = false;

        if (File.Exists(filePath))
        {
            lines = File.ReadAllLines(filePath, Encoding.Default).ToList();
        }

        foreach (var line in lines)
        {
            var trimmedLine = line.Trim();
            if (trimmedLine.StartsWith("[") && trimmedLine.EndsWith("]"))
            {
                var currentSection = trimmedLine.Substring(1, trimmedLine.Length - 2);
                if (currentSection == section)
                {
                    isSectionFound = true;
                    var keyValueLine = $"{key}={value}";
                    int index = lines.IndexOf(line);
                    lines.Insert(index + 1, keyValueLine);
                    break;
                }
            }
        }

        if (!isSectionFound)
        {
            lines.Add($"[{section}]");
            lines.Add($"{key}={value}");
        }

        File.WriteAllLines(filePath, lines, Encoding.Default

该文章在 2024/3/26 18:36:05 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved