类INI文件字符串解析

 类INI文件字符串解析,目前经常用于和客户的对接配置,因为和客户对接,经常各种参数都不一致(参数多少,参数名等,现场人员不好配置),配置界面做的乱七八糟,所以现在的解决方案是利用xml做一个示例配置文件,用于对接配置,客户配置的时候,拷贝示例,修改参数就可以了。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Upload.Util
{
    /// <summary>
    /// Ini类似读取如:
    /// 外挂url=http://ip:port/rminf/services/RmOutAccess?wsdl
    /// 外挂接口序列号=
    /// 卡口url=http://ip:port/rminf/services/Trans?wsdl
    /// 卡口接口序列号=
    /// </summary>
    public class IniStringEx
    {
        private string content;
        private List<KeyValuePair<string, string>> list;
        public IniStringEx(string txt)
        {
            content = txt;
            list = new List<KeyValuePair<string, string>>();
            list.Clear();
            string[] lines = content.Split('\n');
            string key = "";
            string value = "";
            foreach(string line in lines)
            {
                //是否为null或空白
                if (string.IsNullOrEmpty(line) || string.IsNullOrEmpty(line.Trim()))
                    continue;
                //是否是注释
                if (line.Trim().StartsWith(";"))
                {
                    continue;
                }
                if (line.Contains("="))
                {
                    key = "";
                    value = "";
                      //处理
                    string[] keyvalue = line.Split('=');
                    for(int i = 0;i<keyvalue.Length;i++)
                    {
                        if (i==0)//key值
                        {
                            key = keyvalue[i].Trim();
                        }
                        else if (i==1)
                        {
                            value = keyvalue[i].Trim();
                        }
                        else
                        {
                            value += keyvalue[i].Trim();
                        }
                    }

                    KeyValuePair<string, string> x = new KeyValuePair<string, string>(key, value);
                    list.Add(x);
                }
            }
        }

        /// <summary>
        /// 获取key对应的Value值,读取不到设为默认值
        /// </summary>
        /// <param name="key"></param>
        /// <param name="sdefault"></param>
        /// <returns></returns>
        public string GetValue(string key,string sdefault)
        {
            if (list == null || list.Count <= 0)
                return sdefault;
            try
            {
                KeyValuePair<string, string> x = list.Find(p => p.Key == key);
                if (x.Key == key)
                    return x.Value;
            }
            catch
            {
                return sdefault;
            }
            return sdefault;
        }

        /// <summary>
        /// 获取key对应的Value值,读取不到设为默认值
        /// </summary>
        /// <param name="key"></param>
        /// <param name="sdefault"></param>
        /// <returns></returns>
        public string GetValue(string key)
        {
            return GetValue(key, "");
        }
    }

}

 对应的xml配置示例文档

<?xml version="1.0" encoding="utf-8" ?>
<root>
  <!--上传配置示例文档,对应选项,对接配置示例,Content内容输入时请靠边输入,按wuxi格式输入-->
  <Upload Name="Wuxi">
    <Content>
外挂url=http://ip:port/rminf/services/RmOutAccess?wsdl
外挂接口序列号=
卡口url=http://ip:port/rminf/services/Trans?wsdl
卡口接口序列号=
图片url=ftp://ip:port
图片上传用户名=
图片上传密码=
    </Content>
  </Upload>
</root>

 对应参考配置界面

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值