首页 > 编程语言 >Ini文件读写配置工具类 - C#小函数类推荐

Ini文件读写配置工具类 - C#小函数类推荐

时间:2024-09-28 09:34:13浏览次数:1  
标签:string C# 读写 写入 filename Ini key section 键名

       此文记录的是INI文件的读写工具类。

/***

    Ini文件读写配置工具类

    Austin Liu 刘恒辉
    Project Manager and Software Designer

    E-Mail: [email protected]
    Blog:   http://lzhdim.cnblogs.com
    Date:   2024-01-15 15:18:00

    使用说明:
        1、读取;
        string names = IniFileUtil.GetString("Information", "Name", null, filename);
        2、写入;
        IniFileUtil.WriteString("Information", "Name", names, filename);

***/

namespace Lzhdim.LPF.Utility
{
    using System.Runtime.InteropServices;
    using System.Text;

    /// <summary>
    /// Ini文件读写配置工具类
    /// </summary>
    public class IniFileUtil
    {
        /// <summary>
        /// 获取数据
        /// </summary>
        /// <param name="section">段落名</param>
        /// <param name="key">键名</param>
        /// <param name="def">没有找到时返回的默认值</param>
        /// <param name="filename">ini文件完整路径</param>
        /// <returns></returns>
        public static string GetString(string section, string key, string def, string filename)
        {
            StringBuilder sb = new StringBuilder(1024);
            GetPrivateProfileString(section, key, def, sb, 1024, filename);
            return sb.ToString();
        }

        /// <summary>
        /// 写入数据
        /// </summary>
        /// <param name="section">段落名</param>
        /// <param name="key">键名</param>
        /// <param name="val">写入值</param>
        /// <param name="filename">ini文件完整路径</param>
        public static void WriteString(string section, string key, string val, string filename)
        {
            WritePrivateProfileString(section, key, val, filename);
        }

        /// <summary>
        /// 获取值
        /// </summary>
        /// <param name="section">段落名</param>
        /// <param name="key">键名</param>
        /// <param name="defval">读取异常是的缺省值</param>
        /// <param name="retval">键名所对应的的值,没有找到返回空值</param>
        /// <param name="size">返回值允许的大小</param>
        /// <param name="filepath">ini文件的完整路径</param>
        /// <returns></returns>
        [DllImport("kernel32.dll")]
        private static extern int GetPrivateProfileString(
            string section,
            string key,
            string defval,
            StringBuilder retval,
            int size,
            string filepath);

        /// <summary>
        /// 写入
        /// </summary>
        /// <param name="section">需要写入的段落名</param>
        /// <param name="key">需要写入的键名</param>
        /// <param name="val">写入值</param>
        /// <param name="filepath">ini文件的完整路径</param>
        /// <returns></returns>
        [DllImport("kernel32.dll")]
        private static extern int WritePrivateProfileString(
            string section,
            string key,
            string val,
            string filepath);
    }
}

 

标签:string,C#,读写,写入,filename,Ini,key,section,键名
From: https://www.cnblogs.com/lzhdim/p/18340683

相关文章

  • 期刊投稿经验|用corresponding author的账号进行投稿
    在学生时代,大家肯定会进行很多次论文投稿,不管自己是一作还是其他共同作者。如果自己只是其中一个共同作者(既不是一作又不是通讯),比如二作,那么最好借用通讯作者(correspondingauthor)的账号来进行投稿。因为,如果用自己的账号来投稿,那么在填完作者信息后,系统检测到此时的投稿账号......
  • MySQL查找占用CPU过高的SQL
    作为DBA工作中都会遇到过数据库服务器CPU飙升的场景,我们该如何快速定位问题?又该如何快速找到具体是哪个SQL引发的CPU异常呢?下面我们说两个方法。聊聊MySQL中如何快速定位占用CPU过高的SQL。技术人人都可以磨炼,但处理问题的思路和角度各有不同,希望这篇文章可以抛砖引玉。 以一......
  • vulnhub-Basic Pentesting 2靶机
    vulnhub:https://www.vulnhub.com/entry/basic-pentesting-2,241/导入靶机(建议VirtualBox,VMWare扫不到),放在kali同网段,扫描靶机在192.168.81.3,扫描端口很多端口,存在网站服务,访问啥也没有查看8080端口是Tomcat的页面,也没啥东西尝试从ssh服务突破,枚举用户enum4li......
  • Pytorch - Install
    https://pytorch.org/get-started/locally/  zzh@ZZHPC:~/zd/Github$python-mvenvzpytorchzzh@ZZHPC:~/zd/Github$cdzpytorch/zzh@ZZHPC:~/zd/Github/zpytorch$sourcebin/activate(zpytorch)zzh@ZZHPC:~/zd/Github/zpytorch$command-vpython/zdata/Git......
  • 【C语言标准库函数】标准输入输出函数详解2:字符串输入输出
    目录一、字符串输入函数1.1.gets函数(已废弃)1.1.1.函数简介1.1.2.注意和废弃原因1.2.fgets函数1.2.1.函数简介1.2.2.使用场景1.2.3.注意事项1.2.4.示例二、字符串输出函数2.1.puts函数2.1.1.函数简介2.1.2. 使用场景2.1.3.注意事项2.1.4.示例2.2.......
  • RabbitMQ中交换机(Exchange)的类型有哪些及其特点是什么?
    RabbitMQ中的交换机(Exchange)是消息路由的核心组件,它决定了消息如何从生产者路由到队列。RabbitMQ支持多种类型的交换机,每种类型都有其特定的路由逻辑。以下是几种主要的交换机类型及其特点:直接交换机(DirectExchange)特点:直接交换机会将消息发送到绑定键(bindingkey)......
  • DashVector x 通义千问大模型:打造基于专属知识的问答服务
    本教程演示如何使用向量检索服务(DashVector),结合LLM大模型等能力,来打造基于垂直领域专属知识等问答服务。其中LLM大模型能力,以及文本向量生成等能力,这里基于DashScope上的通义千问API以及EmbeddingAPI来接入。背景及实现思路大语言模型(LLM)作为自然语言处理领域的核心技术,具......
  • sicp每日一题[2.31]
    Exercise2.31AbstractyouranswertoExercise2.30toproduceaprocedure$tree-map$withthepropertythat$square-tree$couldbedefinedas(define(square-treetree)(tree-mapsquaretree))这道题跟上面一道的map实现几乎一模一样,我还以为我理解错题目......
  • 中望ZWCAD2021新增功能及安装教程和下载
    中望ZWCAD2021引入了多个新功能和改进,进一步提升了设计效率和用户体验。以下是一些主要新增功能:暗色主题:ZWCAD2021首次引入了暗色主题,减轻长时间绘图时对眼睛的疲劳感,并为用户提供了更多视觉选择。智能语音注释:用户可以在图纸中直接录制语音注释,为设计增加语音说明,便于团......
  • sicp每日一题[2.32]
    上一道题没什么改动,再来一道Exercise2.32Wecanrepresentasetasalistofdistinctelements,andwecanrepresentthesetofallsubsetsofthesetasalistoflists.Forexample,ifthesetis(123),thenthesetofallsubsetsis(()(3)(2)(23)......