在C# WinForm应用程序中,INI文件常被用作简单的配置文件,用于存储应用程序的设置和参数。INI文件是一种文本文件,其结构通常包括节(Sections)和键值对(Key-Value Pairs)。每个节都包含一个或多个键值对,用于存储相关的配置信息。
本文将介绍如何在C# WinForm程序中读取和写入INI配置文件,包括创建INI文件、读取INI文件中的数据以及向INI文件中写入数据。
INI文件的基本结构非常简单,由节(Sections)和键值对(Key-Value Pairs)组成。每个节由方括号包围,例如[SectionName],而键值对则是以等号=分隔的字符串,例如Key=Value。下面是一个简单的INI文件示例:
[AppSettings]Setting1=Value1Setting2=Value2[Database]Server=localhostPort=3306
在这个示例中,有两个节:AppSettings和Database。每个节下都有一些键值对,用于存储配置信息。
在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文件中写入数据同样可以使用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
本文链接:http://www.28at.com/showinfo-26-77682-0.htmlC# WinForm程序中读写INI配置文件的技术详解
声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com
上一篇: Vue3问题:如何在页面上添加水印?
下一篇: GaussDB WDR分析之集群报告篇