将多行文本以单行的格式保存起来 读和写 ini


ddd[3]


/*

* [info]

* group = a,b,c,d

*

* 需求 修改ini配置信息的group值

*

* 1添加:往group中添加一个值

* 2移除:从group中的值移除一个值

*

*

* 1 读取group的值,把它转换成一个字符串数组,

* 移除所有空行,把数组重新添加到一个列表中,行为空则不添加

* 添加: 将要添加的值添加到列表中

* 将列表转换成一行的字符串,行与行之间用 都好隔开

*

*

* 2 读取group的值,把它转换成一个字符串数组,

* 移除所有空行,把数组重新添加到一个列表中,行为空则不添加

* 删除: 判断列表中是否有 要删除的值,有就删除掉,没有不操作

* 将列表转换成一行的字符串,行与行之间用 都好隔开

*

* 2019年12月26日 22:26:43

*/



        /*
         * [info]
         *  group = a,b,c,d
         *
         *   需求 修改ini配置信息的group值
         *
         *   1添加:往group中添加一个值
         *   2移除:从group中的值移除一个值
         *
         *
         *    1 读取group的值,把它转换成一个字符串数组,
         *      移除所有空行,把数组重新添加到一个列表中,行为空则不添加
         *     添加: 将要添加的值添加到列表中
         *       将列表转换成一行的字符串,行与行之间用 都好隔开
         *
         *
         *    2  读取group的值,把它转换成一个字符串数组,
         *       移除所有空行,把数组重新添加到一个列表中,行为空则不添加
         *     删除:  判断列表中是否有 要删除的值,有就删除掉,没有不操作
         *       将列表转换成一行的字符串,行与行之间用 都好隔开
         *
         *
         */

        //读行的文本 到 列表
        /// <summary>
        /// aaa,dfd,hhh,,ff,hello ->转换成  列表   同时删除空行
        /// </summary>
        /// <param name="text"> aaa,dfd,hhh,,ff,hello</param>
        /// <returns></returns>
        private List<string> ReadString(string text) {
            List<string> lst = new List<string>();
            //读行的文本 到 列表
            string[] arr = text.Split(',');
            if (arr.Length > 0)
            {
                lst.Clear();
                for (int i = 0 ; i < arr.Length ; i++)
                {
                    string s = arr[i].Trim();
                    if (s.Length > 0)     //不添加空行 //移除所有的空的行
                        lst.Add(s);
                }
            }
            else
            {
                lst.Add(text);
            }
            return lst;
        }


        /// <summary>
        /// 
        /// </summary>
        /// <param name="resString"> aaa,dfd,hhh,,ff,hello 源字符串</param>
        /// <param name="addString">要添加的字符串</param>
        public string AddString(string resString,string addString) {
            //读行的文本 到 列表
            //[添加]
            //保存
            List<string> list = ReadString(resString);
            string findString = addString.Trim();
            if (list.IndexOf(findString) ==-1)
            {
                list.Add(findString);
            }

            //转换成一行文本
            resString = string.Join(",", list.ToArray());
            if (resString.EndsWith(","))
                resString = resString.Substring(0, resString.Length - 1);
            return resString;
        }

        public string RemoveString(string resString, string findString) {
            //读行的文本 到 列表
            //[删除]
            //保存

            if (resString.Contains(","))
            {
                findString = findString.Trim();
                List<string> list = ReadString(resString);
                if (list.IndexOf(findString) != -1)//存在
                {
                    list.Remove(findString);
                }
                //转换成一行文本
                resString = string.Join(",", list.ToArray());
                if (resString.EndsWith(","))
                    resString = resString.Substring(0, resString.Length - 1);
                return resString;
            }
            else
            {
                return resString.Replace(findString, "");
            }
        }

        private void button删除_Click(object sender, EventArgs e) {
            textBox1.Text = RemoveString(textBox1.Text, textBox2.Text);
        }

        private void button添加_Click(object sender, EventArgs e) {
            textBox1.Text = AddString(textBox1.Text, textBox2.Text);
        }

猜你喜欢

转载自www.cnblogs.com/xe2011/p/12104815.html
INI
今日推荐