读取ini文件返回Dictionary<>的ini文件读取器

Dictionary<string, Dictionary<string, string>> readIni(string filePath)

        {

            int count = 0;//计算节点数

            int j = 0;//节点数值下标

            string[] lines = System.IO.File.ReadAllLines(filePath, Encoding.Default);

            foreach (string item in lines)

            {

                Console.WriteLine(item);

                if (item.StartsWith("[") && item.EndsWith("]"))

                {

                    count++;

                }

            }

            string[] nodeName = new string[count];

            #region 确定节点数组

            for (int i = 0; i < lines.Length; i++)

            {

                if (lines[i].StartsWith("[") && lines[i].EndsWith("]"))

                {

                    while (j < count)

                    {

                        nodeName[j] = lines[i];

                        j++;

                        break;

                    }

                }

            }

            #endregion

            Dictionary<string, string>[] dicKey=new Dictionary<string, string>[count];

            Dictionary<string, Dictionary<string, string>> dic = new Dictionary<string, Dictionary<string, string>>();

            for (int m = 0; m < lines.Length; m++)

            {

                for (int i = 0; i < count; i++)

                {

                    if (lines[m].Contains(nodeName[i]))//某个节点所在的行

                    {

                        for (int n = m + 1; n < lines.Length; n++)

                        {

                            //读到下一个节点跳出

                            if ((i + 1) < count && lines[n].Contains(nodeName[i + 1]))//位置不能颠倒

                            {

                                break;

                            }

                            string str1 = lines[n].Substring(0, lines[n].IndexOf("="));

                            string str2 = lines[n].Substring(lines[n].IndexOf("=") + 1);

                            dicKey[i][str1] = str2;                           

                        }

                        dic.Add(nodeName[i], dicKey[i]);

                    }

                }

            }

            return dic;

        }

转载于:https://www.cnblogs.com/yichengbo/archive/2011/08/10/2134286.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值