IniFile简单读写类

 
using System;

using System.Collections.Generic;

using System.Text;

using System.Runtime.InteropServices;



namespace WWBClassLib.Tools

{

    public class IniFile

    {



        public string path;







        [DllImport("kernel32")]



        private static extern long WritePrivateProfileString(string section,



            string key, string val, string filePath);



        [DllImport("kernel32")]



        private static extern int GetPrivateProfileString(string section,



                 string key, string def, StringBuilder retVal,



            int size, string filePath);







        /// <summary>



        /// INIFile 构造函数.



        /// </summary>



        /// <PARAM name="INIPath"></PARAM>



        public IniFile(string INIPath)

        {



            path = INIPath;



        }



        /// <summary>



        /// 写入IniFile



        /// </summary>



        /// <PARAM name="Section"></PARAM>



        /// Section name



        /// <PARAM name="Key"></PARAM>



        /// Key Name



        /// <PARAM name="Value"></PARAM>



        /// Value Name



        public void IniWriteValue(string Section, string Key, string Value)

        {



            WritePrivateProfileString(Section, Key, Value, this.path);



        }







        /// <summary>



        /// 读取IniFile



        /// </summary>



        /// <PARAM name="Section"></PARAM>



        /// <PARAM name="Key"></PARAM>



        /// <PARAM name="Path"></PARAM>



        /// <returns></returns>



        public string IniReadValue(string Section, string Key)

        {



            StringBuilder temp = new StringBuilder(255);



            int i = GetPrivateProfileString(Section, Key, "", temp,



                                            255, this.path);



            return temp.ToString();







        }



    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
cSharp可以通过System.IO命名空间下的IniFile快速读写INI配置文件。具体代码实现可以参考以下示例: ```csharp using System.IO; public class IniFile { private string filePath; public IniFile(string filePath) { this.filePath = filePath; } public string ReadValue(string section, string key) { var iniValue = ""; if (File.Exists(filePath)) { using (var sr = new StreamReader(filePath)) { string line; while ((line = sr.ReadLine()) != null) { if (line.Trim().StartsWith(section)) { while ((line = sr.ReadLine()) != null && !line.Trim().StartsWith("[")) { var fields = line.Split('='); if (fields[0].Trim() == key) { iniValue = fields[1].Trim(); break; } } } } } } return iniValue; } public void WriteValue(string section, string key, string value) { if (File.Exists(filePath)) { var sb = new StringBuilder(); var modified = false; using (var sr = new StreamReader(filePath)) { string line; while ((line = sr.ReadLine()) != null) { if (line.Trim().StartsWith(section)) { sb.AppendLine(line); while ((line = sr.ReadLine()) != null && !line.Trim().StartsWith("[")) { if (line.Trim().StartsWith($"{key}=")) { sb.AppendLine($"{key}={value}"); modified = true; } else { sb.AppendLine(line); } } } else { sb.AppendLine(line); } } } if (!modified) { sb.AppendFormat("{0}[{1}]\r\n{2}={3}\r\n", Environment.NewLine, section, key, value); } File.WriteAllText(filePath, sb.ToString()); } } } ``` 使用示例: ```csharp var iniFile = new IniFile("config.ini"); var value = iniFile.ReadValue("database", "connectionString"); Console.WriteLine("读取配置项 database:connectionString = {0}", value); iniFile.WriteValue("update", "lastUpdateTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); ``` 输出结果: ``` 读取配置项 database:connectionString = Data Source=127.0.0.1;Initial Catalog=TestDB;User ID=test;Password=123456 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值