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

C#读取.ini配置文件

INI文件(Initialization File)是一种简单的文本文件格式,用于存储程序的配置信息。在Visual Studio中,INI文件通常用于存储应用程序或项目的设置和配置数据。这些设置可能包括数据库连接字符串、应用程序参数、用户偏好等。

INI文件的结构由节(section)和键值对(key-value pair)组成。每个节都有一个唯一的名称,用于区分不同的配置区域。键值对则用于存储具体的配置项及其对应的值。例如:

ini复制代码运行
[Database]
Server=localhost
DatabaseName=MyAppDB
UserID=admin
Password=123456   

在这个示例中,[Database]是一个节段Section,包含了与数据库相关的配置信息。接下来的键值对分别表示服务器地址、数据库名称、用户ID和密码

要在Visual Studio中使用INI文件,可以使用C#或其他编程语言提供的库来读取和写入这些文件。例如,使用C#的System.Configuration命名空间中的IniFile类可以方便地处理INI文件。

ini配置文件示例

[database]  
host=localhost  
port=3306  
username=root  
password=mysecurepassword  
dbname=myappdb  

代码读取

[DllImport("kernel32", CharSet = CharSet.Unicode)]
private static extern long WritePrivateProfileString(string section, string key, string val, string filePath);
[DllImport("kernel32", CharSet = CharSet.Unicode)]
private static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath);
        
/// <summary>
///读取ini文件数据
/// </summary>
/// <param name="Section">段</param>
/// <param name="Key">键名</param>
/// <param name="def">默认值</param>
/// <param name="filePath">文件路径</param>
/// <returns>读出内容</returns>
public static string ReadValueFromIniFile(string Section, string Key, string def, string filePath)
{
    StringBuilder temp = new StringBuilder(4096);
    int i = GetPrivateProfileString(Section, Key, def, temp, 4096, filePath);
    return temp.ToString();
}
 
/// <summary>
/// 写入数据到ini文件
/// </summary>
/// <param name="Section">段</param>
/// <param name="Key">键名</param>
/// <param name="Value">键值</param>
/// <param name="filePath">文件路径</param>
public static void WriteValueFromIniFile(string Section, string Key, string Value, string filePath)
{
    WritePrivateProfileString(Section, Key, Value, filePath);
}


http://www.kler.cn/a/372952.html

相关文章:

  • 【论文阅读笔记】VLP: A Survey on Vision-language Pre-training
  • docker-minio启动参数
  • Unity3D 开发教程:从入门到精通
  • java项目之智能学习平台系统源码(springboot)
  • 3D Gaussian Splatting代码详解(三):模型构建,实现3D 高斯椭球体的克隆和分裂
  • 深度学习案例:带有一个隐藏层的平面数据分类
  • 手工方式屏蔽某一个网站
  • 利用摄像机实时接入分析平台LiteAIServer视频智能分析软件进行视频监控:过亮过暗检测算法详解
  • AHT20 HAL库驱动
  • 人工智能:开启未来之门
  • 如何分析算法的执行效率和资源消耗
  • 将本地某个commit 提交另一个分支上
  • Unity BesHttp插件修改Error log的格式
  • 数字信封原理解析:安全高效,一次一密!
  • 基于Hadoop和Hive的健康保险数据分析
  • 现代Web酒店客房管理:基于Spring Boot的实现
  • Linux scp命令语法
  • 00 硬件、嵌入式硬件知识-目录篇
  • R语言机器学习算法实战系列(十五)随机森林生存预后模型+SHAP值 (Random Survival Forest + SHAP)
  • AI虚拟主播实时互动模块的搭建与开发!
  • XSS小游戏【1-13关】
  • HTML入门教程22:HTML文件路径
  • 物联网监控数据采集,传输和存储方案:使用 GreptimeDB 和 YoMo
  • Flink CDC系列之:调研应用Flink CDC将 ELT 从 MySQL 流式传输到 Doris方案
  • 如何解决RabbitMQ消息的重复消费问题
  • ubuntu 24 (wayland)如何实现无显示器远程桌面