首页 > 其他分享 >FAQ001 读取INI文件的配置项

FAQ001 读取INI文件的配置项

时间:2024-01-08 09:45:46浏览次数:38  
标签:读取 sectionName value fileName keyName INI FAQ001 string

要读取 INI 文件中的配置项,你可以使用 System.IO.File 类来读取文件,然后使用 System.Text.RegularExpressions.Regex 类来搜索字符串并提取所需的值。下面是一个基本的函数示例,它根据传入的文件名和配置项名返回对应的配置值。

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

public static string GetIniValue(string fileName, string sectionName, string keyName)
{
    string value = null;
    string pattern = string.Format(@"\[(?<section>[^\]]+)\][\n\r\s]*((?<comment>;.*)|(?<key>[^=^;\n]+)=(?<value>[^\n^;]*))", sectionName);

    if (File.Exists(fileName))
    {
        string fileContent = File.ReadAllText(fileName);

        MatchCollection matches = Regex.Matches(fileContent, pattern, RegexOptions.IgnoreCase | RegexOptions.Multiline);

        foreach (Match match in matches)
        {
            string section = match.Groups["section"].Value;

            if (string.Compare(section, sectionName, StringComparison.OrdinalIgnoreCase) == 0)
            {
                string key = match.Groups["key"].Value.Trim();

                if (string.Compare(key, keyName, StringComparison.OrdinalIgnoreCase) == 0)
                {
                    value = match.Groups["value"].Value.Trim();
                    break;
                }
            }
        }
    }

    return value;
}

这个函数实现了以下功能:

  1. 读取指定的 INI 文件;
  2. 通过正则表达式搜索文件内容、匹配指定的节和键,并返回匹配到的值。

使用方法:

string fileName = "C:\\example.ini";
string sectionName = "Section1";
string keyName = "Key1";
string value = GetIniValue(fileName, sectionName, keyName);

在上面的代码中,你需要将 fileName 设置为要读取的 INI 文件的完整路径,sectionName 设置为需要查找的节名称,keyName 设置为需要查找的键名称。然后可以使用返回的 value 变量获得相应的配置值。

需要注意的是,这个函数是一个基本示例,仅适用于具有类似于标准 INI 文件格式的文件。如果你遇到的是特定格式的 INI 文件,可能需要更改函数中的正则表达式以适应你的需要。

标签:读取,sectionName,value,fileName,keyName,INI,FAQ001,string
From: https://www.cnblogs.com/titianblog/p/17951707

相关文章

  • 在微信中接入gemini
    ......
  • Google Gemini接口调用(node版)
    一、打开GoogleAIStudiohttps://makersuite.google.com/app/apikey二、在国外服务器上部署一个接口用于真正的请求constsdAxiosOnAzure=async(req,res)=>{let{config={url:'https://sinkin.ai/api/inference',method:'post',data:{}......
  • RuoYi-Cloud-Plus使用minio进行文件上传图片后无法预览解决_修改minio配置minio桶权限
     在文件管理的位置,发现刚刚上传的图片文件,会显示 预览图片失败 后来经过多方查看,发现是minio的配置的问题可以从这里:可以看到首先登录RuoYi-Cloud-Plus系统然后,打开文件管理页面可以看到,当上传了图片文件以后显示文件展示中,文件预览失败,那么这个时......
  • 执行minitest -a 报错提示“由于目标计算机积极拒绝,无法连接”
    在命令行执行:minitest-a报错: 解决方案:1、先执行:cliauto--project“H:XqginiumProjectlwxapp-mal1-miniapp"--auto-port9420 2、然后再执行minitest-a就正常了 ......
  • 【Python入门教程】读取图片信息最全教程(经纬度、偏转角、无人机影像、大疆)
    ​    通常读取图片的属性信息(如经纬度、拍摄时间、IMU数据等)都是通过exifread库进行读取,但是有些图片用这个库读取的效果不好。所以今天我就和大家分享一下如何使用Python读取图片属性信息的三种方法。1GDAL读取    GDAL库是用来处理卫星影像的库,它同样可......
  • 在Python程序中读取和写入文件的方法
    在Python编程中,读取和写入文件是常见的操作。本文将介绍几种常用的方法来实现在Python程序中读取和写入文件。1.使用open()函数Python提供了内置的open()函数,可以用于打开一个文件,并返回一个文件对象,从而进行文件的读取和写入操作。open()函数接受两个参数:文件名和打开模式。示例代......
  • Node.js 读取文件技巧与案例分享
    在面向服务器端JavaScript环境 Node.js 的开发中,处理文件读取至关重要,它是实现文件内容访问、分析和操作的关键步骤。这一功能对开发网络服务、日志审查系统、数据加工程序等多种软件非常有用。有了Node.js强大的文件处理能力,您可以毫不费力地读入文本、JSON、XML等文件类型......
  • minio循序渐进
    部署dockermc常用命令数据迁移备注:https://dl.minio.org.cn/client/mc/release/linux-amd64/mc导入导出1、源minioserver操作mcaliassetminiohttp://192.168.3.185:9090adminXXXXmcaliaslistmclsminio#源minio数据备份mccp--recursiveminio//opt/min......
  • Pytest07-pytest.ini配置文件
    1.pytest配置文件固定名称:pytest.ini作用域:当前目录及子目录具体配置功能见下:[pytest]#01把命令行参数自动添加到这里addopts=-s-v--html=./report/report2023.html#02指定执行的用例的目录testpaths=./script#03修改默认的测试文件名规则python_files=au......
  • Pod Init Error: force_encoding': can't modify frozen String (FrozenError)
    热烈欢迎,请直接点击!!!进入博主AppStore主页,下载使用各个作品!!!注:博主将坚持每月上线一个新app!! 如下图所示,切换Xcode为Xcode13。 ......