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);
}
相关推荐
烤麻辣烫3 分钟前
JS基础
开发语言·前端·javascript·学习
techdashen6 分钟前
一个徽章坏了,顺带扯出了 2.3 万个 feature
数据库·mysql
2301_814809868 分钟前
CSS Grid布局如何解决图片溢出网格单元_设置object-fit与网格尺寸.txt
jvm·数据库·python
froginwe1113 分钟前
C++ 文件和流
开发语言
魂梦翩跹如雨18 分钟前
数据库的“契约” —— 约束(Constrains)
java·数据库·mysql
m0_6784854519 分钟前
如何在Bootstrap中自定义Modal的弹出动画效果
jvm·数据库·python
与衫25 分钟前
[特殊字符] 解决 DataHub 无法解析复杂 SQL 血缘的问题(gsp-datahub-sidecar 实测)
数据库·sql
m0_4939345327 分钟前
CSS如何禁止子元素浮动影响父级_设置父容器BFC属性
jvm·数据库·python
hez201027 分钟前
C# 15 类型系统改进:Union Types
c#·.net·.net core
weixin_5860614629 分钟前
Golang怎么安装和配置开发环境_Golang环境搭建完整教程【总结】
jvm·数据库·python