c#ini文件读写

一、ini的格式

由节(Sections)和键值对(Key-Value Pairs)组成。每个节由方括号包围,例如[SectionName],而键值对则是以等号=分隔的字符串,例如Key=Value。每个节都包含一个或多个键值对,用于存储相关的配置信息。

ini文件不支持多数据类型,只支持字符串

[节点名]
键名 = 值

一、引用

C#命名空间中没有直接读写INI的类,但在"kernel32.dll"文件中有Win32的API函数–WritePrivateProfileString()和GetPrivateProfileString(),可操作ini文件。

其中"kernel32.dll"文件是电脑自带的一个库,引用方法为DllImport

1.DllImport 是 C# 中用于从非托管 DLL(动态链接库)中导入函数的一个特性。这个特性允许你在 .NET 应用程序中调用由其他语言编写的函数,如 C 或 C++。使用 DllImport 可以让你重用现有的非托管代码,而不需要重新实现这些功能。CharSet 属性指定了字符集。CharSet.Auto 表示自动选择合适的字符集

 // 声明INI文件的写操作函数 WritePrivateProfileString()
         [DllImport("kernel32.dll",CharSet = CharSet.Auto)]
        private static extern bool WritePrivateProfileString(string section, string key, string value, string filePath);
 
        // 声明INI文件的读操作函数 GetPrivateProfileString()
        [DllImport("kernel32")]
        private static extern int GetPrivateProfileString(string section, string key, string def, System.Text.StringBuilder retVal, int size, string filePath);
 
  

2.WritePrivateProfileString

section节点名
key键名
value
filePath文件地址
 string INIStr = Directory.GetCurrentDirectory() + "\\com.ini";

            //判断文件是否存在
            if (!File.Exists(INIStr))
            {
                using (FileStream fs = new FileStream(INIStr, FileMode.Create, FileAccess.Write))
                {
                    fs.Close();
                }
            }
            WritePrivateProfileString("MES","MES","12",INIStr);

3.GetPrivateProfileString

section节点名
key键名
def当文件里找不到键对应的值的时候的默认值
retval读到的值
size读取缓冲区大小
filePath文件地址
StringBuilder lpReturnedString = new StringBuilder(200);
string INIStr = Directory.GetCurrentDirectory() + "\\com.ini";
int p= GetPrivateProfileString("MES", "MdE","42", lpReturnedString,200,INIStr);
string oi= lpReturnedString.ToString();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值