C# 读写ini配置文件

                                                       C# 读写ini配置文件

一、简述

 记--c#通过调用系统api接口进行简单读写ini配置文件。

例子打包:外链:https://wwa.lanzoui.com/b0c9nm3pa 密码:8maq

二、效果

三、工程结构

 

四、源代码

Program.cs文件

using System;
using System.IO;

namespace Configure
{
    class Program
    {
        static void Main(string[] args)
        {
            //配置文件路径
            string iniFilePath = Directory.GetCurrentDirectory() + "\\app.ini";

            //没有app.ini时读配置,读到的时默认值
            string ip1 = IniConfigHelper.ReadSetting(iniFilePath, "General", "IP", "127.0.0.1");
            Console.WriteLine("ReadSetting ip1:{0}", ip1);

            //写配置
            IniConfigHelper.WriteSetting(iniFilePath, "General", "IP", "192.168.10.1");

            //再次读配置
            string ip2 = IniConfigHelper.ReadSetting(iniFilePath, "General", "IP", "127.0.0.2");
            Console.WriteLine("ReadSetting ip2:{0}", ip2);

            Console.ReadKey();
        }
    }
}

IniConfigHelper.cs文件

using System.Runtime.InteropServices;
using System.Text;

namespace Configure
{
    class IniConfigHelper
    {
        private const int VALUE_MAX_LEN = 1024; //值最大长度

        /// <summary>
        /// 写配置到ini文件
        /// </summary>
        /// <param name="appName">节点名</param>
        /// <param name="keyName">要写入的key</param>
        /// <param name="value">要写入的值</param>
        /// <param name="fileName">要写入ini配置文件路径</param>
        /// <returns>成功返回非0,失败返回0</returns>
        [DllImport("kernel32")]
        private static extern long WritePrivateProfileString(string appName, string keyName,
            string value, string fileName);

        /// <summary>
        /// 从ini配置文件读配置
        /// </summary>
        /// <param name="appName">节点名</param>
        /// <param name="keyName">目标key</param>
        /// <param name="defaultValue">如果找不到目标key就返回这个默认值</param>
        /// <param name="returnedString">返回目标key对应的值</param>
        /// <param name="size">returnedString的大小</param>
        /// <param name="fileName">要读取的ini配置文件路径</param>
        /// <returns>返回返回字符串的长度</returns>

        [DllImport("kernel32")]
        private static extern long GetPrivateProfileString(string appName, string keyName,
            string defaultValue, StringBuilder returnedString, int size, string fileName);

        /// <summary>
        /// 外部接口,写配置
        /// </summary>
        /// <param name="iniFilePath">ini配置文件路径</param>
        /// <param name="appName">节点名</param>
        /// <param name="keyName">key</param>
        /// <param name="value">值</param>
        /// <returns>成功返回true,失败返回false</returns>
        public static bool WriteSetting(string iniFilePath, string appName, string keyName, string value)
        {
            return (0 == WritePrivateProfileString(appName, keyName, value, iniFilePath)? false :true);
        }

        /// <summary>
        /// 读配置
        /// </summary>
        /// <param name="iniFilePath">ini配置文件路径</param>
        /// <param name="appName">节点名</param>
        /// <param name="keyName">目标key</param>
        /// <param name="defaultValue">默认值</param>
        /// <returns>返回key对应的value</returns>
        public static string ReadSetting(string iniFilePath, string appName, string keyName, string defaultValue)
        {
            StringBuilder result = new StringBuilder(VALUE_MAX_LEN+1);
            GetPrivateProfileString(appName, keyName, defaultValue, result, VALUE_MAX_LEN, iniFilePath);
            return result.ToString();
        }

    }
}

五、附

功能函数示例
string转intbool int.TryParse(string s, out Int32 result);

int num;

bool isParseOk = int.TryParse("123", out num);

int Convert.ToInt32(string value)int num = Convert.ToInt32("123");
string转doublebool double.TryParse(string s, out Double result)

double num;

bool isParseOk = double.TryParse("123.456", out num);

Convert.ToDouble(string value)double num = Convert.ToDouble("123.456");
int转stringToString()int num = 123;
string str = num.ToString();
Convert.ToString(int num);string str = Convert.ToString(123);
double转stringToString()double num = 123;
string str = num.ToString(num);
Convert.ToString(double num);string str = Convert.ToString(123.456);

详细请看:

 

  • 5
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值