当前位置:首页 > 科技  > 软件

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

来源: 责编: 时间:2024-03-19 09:24:21 123观看
导读在C# WinForm应用程序中,INI文件常被用作简单的配置文件,用于存储应用程序的设置和参数。INI文件是一种文本文件,其结构通常包括节(Sections)和键值对(Key-Value Pairs)。每个节都包含一个或多个键值对,用于存储相关的配置信

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

本文将介绍如何在C# WinForm程序中读取和写入INI配置文件,包括创建INI文件、读取INI文件中的数据以及向INI文件中写入数据。IEc28资讯网——每日最新资讯28at.com

IEc28资讯网——每日最新资讯28at.com

一、INI文件的基本结构

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

[AppSettings]Setting1=Value1Setting2=Value2[Database]Server=localhostPort=3306

在这个示例中,有两个节:AppSettings和Database。每个节下都有一些键值对,用于存储配置信息。IEc28资讯网——每日最新资讯28at.com

二、读取INI文件中的数据

在C#中,可以使用System.Configuration命名空间下的IniFile类或者System.IO命名空间下的文件操作方法来读取INI文件中的数据。这里我们使用System.IO的方法来实现。IEc28资讯网——每日最新资讯28at.com

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文件中的数据:IEc28资讯网——每日最新资讯28at.com

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

三、向INI文件中写入数据

向INI文件中写入数据同样可以使用System.IO命名空间下的文件操作方法来实现。下面是一个简单的示例:IEc28资讯网——每日最新资讯28at.com

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

本文链接:http://www.28at.com/showinfo-26-77682-0.htmlC# WinForm程序中读写INI配置文件的技术详解

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: Vue3问题:如何在页面上添加水印?

下一篇: GaussDB WDR分析之集群报告篇

标签:
  • 热门焦点
  • 一加Ace2 Pro官宣:普及16G内存 引领24G

    一加Ace2 Pro官宣:普及16G内存 引领24G

    一加官方今天继续为本月发布的新机一加Ace2 Pro带来预热,公布了内存方面的信息。“淘汰 8GB ,12GB 起步,16GB 普及,24GB 引领,还有呢?#一加Ace2Pro#,2023 年 8 月,敬请期待。”同时
  • 小米降噪蓝牙耳机Necklace分享:听一首歌 读懂一个故事

    小米降噪蓝牙耳机Necklace分享:听一首歌 读懂一个故事

    在今天下午的小米Civi 2新品发布会上,小米还带来了一款新的降噪蓝牙耳机Necklace,我们也在发布结束的第一时间给大家带来这款耳机的简单分享。现在大家能见到最多的蓝牙耳机
  • vivo TWS Air开箱体验:真轻 臻好听

    vivo TWS Air开箱体验:真轻 臻好听

    在vivo S15系列新机的发布会上,vivo的最新款真无线蓝牙耳机vivo TWS Air也一同发布,本次就这款耳机新品给大家带来一个简单的分享。外包装盒上,vivo TWS Air保持了vivo自家产
  • 多线程开发带来的问题与解决方法

    多线程开发带来的问题与解决方法

    使用多线程主要会带来以下几个问题:(一)线程安全问题  线程安全问题指的是在某一线程从开始访问到结束访问某一数据期间,该数据被其他的线程所修改,那么对于当前线程而言,该线程
  • 一篇文章带你了解 CSS 属性选择器

    一篇文章带你了解 CSS 属性选择器

    属性选择器对带有指定属性的 HTML 元素设置样式。可以为拥有指定属性的 HTML 元素设置样式,而不仅限于 class 和 id 属性。一、了解属性选择器CSS属性选择器提供了一种简单而
  • 拼多多APP上线本地生活入口,群雄逐鹿万亿市场

    拼多多APP上线本地生活入口,群雄逐鹿万亿市场

    Tech星球(微信ID:tech618)文 | 陈桥辉 Tech星球独家获悉,拼多多在其APP内上线了&ldquo;本地生活&rdquo;入口,位置较深,位于首页的&ldquo;充值中心&rdquo;内,目前主要售卖美食相关的
  •  首发天玑9200+ iQOO Neo8系列发布首销售价2299元起

    首发天玑9200+ iQOO Neo8系列发布首销售价2299元起

    2023年5月23日晚,iQOO Neo8系列正式发布。其中,Neo系列首款Pro之作——iQOO Neo8 Pro强悍登场,限时售价3099元起;价位段最强性能手机iQOO Neo8同期上市
  • 苹果MacBook Pro 2021测试:仍不支持平滑滚动

    苹果MacBook Pro 2021测试:仍不支持平滑滚动

    据10月30日9to5 Mac 消息报道,苹果新的 14 英寸和 16 英寸 MacBook Pro 2021 上市后获得了不错的评价,亮点包括行业领先的性能,令人印象深刻的电池续航,精美丰
  • 利用职权私自解除被封帐号 Meta开除20多名员工

    利用职权私自解除被封帐号 Meta开除20多名员工

    11月18日消息,据外媒援引知情人士表示,过去一年时间内,Facebook母公司Meta解雇或处罚了20多名员工以及合同工,指控这些人通过内部系统以不当方式重置用户帐号,其
Top