当前位置: 首页 > news >正文

Ini文件的读写

最简单的Ini读写:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Text;namespace AuxiliaryTools
{public static class IniHelper{/// <summary>/// 读 INI/// </summary>/// <param name="file">完整路径</param>/// <param name="section">段名,如 "UI"</param>/// <param name="key">键名,如 "Width"</param>/// <param name="defaultValue">找不到时返回什么</param>public static string Read(string file, string section, string key, string defaultValue = ""){if (!File.Exists(file)) return defaultValue;string target = $"[{section}]";          // [UI]bool hitSection = false;foreach (var line in File.ReadLines(file, Encoding.UTF8)){var s = line.Trim();if (s.StartsWith("[") && s.EndsWith("]")){hitSection = string.Equals(s, target, System.StringComparison.OrdinalIgnoreCase);continue;}if (!hitSection) continue;var kv = s.Split(new[] { '=' }, 2);if (kv.Length == 2 &&string.Equals(kv[0].Trim(), key, System.StringComparison.OrdinalIgnoreCase))return kv[1].Trim();}return defaultValue;}/// <summary>/// 写 INI(无则创建,有则覆盖)/// </summary>public static void Write(string file, string section, string key, string value){var lines = new List<string>();bool hitSection = false, done = false;if (File.Exists(file))lines.AddRange(File.ReadAllLines(file, Encoding.UTF8));string target = $"[{section}]";for (int i = 0; i < lines.Count; i++){var s = lines[i].Trim();if (s.StartsWith("[") && s.EndsWith("]")){hitSection = string.Equals(s, target, System.StringComparison.OrdinalIgnoreCase);continue;}if (!hitSection) continue;var kv = s.Split(new[] { '=' }, 2);if (kv.Length == 2 &&string.Equals(kv[0].Trim(), key, System.StringComparison.OrdinalIgnoreCase)){lines[i] = $"{key}={value}";   // 原地替换done = true;break;}}if (!done)   // 没找到,追加
            {if (!hitSection) lines.Add(target);lines.Add($"{key}={value}");}File.WriteAllLines(file, lines, Encoding.UTF8);}}
}

调用:

//
IniHelper.Write(ini, "Project_Color", "Color_SET_CS", value.ToString());
//
IniHelper.Read(ini, "Project_Color", "Color_SET_WWC", "")

 

http://www.hskmm.com/?act=detail&tid=16678

相关文章:

  • 数据跨境传输解决方案助力企业安全合规高效流通
  • 题解:P9454 [ZSHOI-R1] 巡城
  • QuestaSim奔溃后再次打开无法仿真
  • 软考架构备考-软件可靠性、知识产权和标准化
  • 医院内外网文件传输:平衡安全与效率的关键链路!
  • 我的第一个赚钱网站 -- 从网站源码到集成AdSense获利的全过程
  • Gradle读取仓库配置文件的优先级
  • opencv学习记录5
  • PCS PMA,如何理解硬核IP
  • pycharm中使用调试模式运行 uvicorn.run(app)报错TypeError: _patch_asyncio.locals.run() got an unexpected keywor解决
  • 交换机命令
  • 2025.9.25
  • 易基因:Cell Rep:华农任文凯团队利用ChIP-seq及多组学解析过敏性疾病的关键调控机制|项目文章
  • 详细介绍:STL 容器 --- list 类
  • Idea代码回退已经push到远段仓库的代码分支到指定提交记录
  • 开写第一篇
  • 大模型function calling多轮对话开发示例
  • ViTables 安装与 HDF5 数据可视化全指南 - 实践
  • elementuiplus修改el-checked多选框样式
  • DataGrip格式化SQL模板
  • 计算机毕设java毕业生档案流向追踪系统的设计与实现 基于Java的毕业生档案管理与追踪系统的设计与实现 Java技术驱动的毕业生档案流向监测架构开发
  • 图思维胜过链式思维:JGraphlet构建任务流水线的八大核心原则
  • 两月九城,纷享销客渠道携手伙伴共创CRM新纪元
  • markdown
  • mstsc带用户名密码自动登录
  • Sql Server Begin TRY sample
  • 基于数据平台构建供应链协同体系,实现业务全链路可视化与智能决策
  • 字节二面挂!面试官追问 Redis 内存淘汰策略 LRU 和传统 LRU 差异,我答懵了
  • UPX压缩工具的用法
  • NM:微生物组数据分析的规划与描述 - 详解