将多行文本以单行的格式保存起来 读和写 ini
Posted xe2011
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将多行文本以单行的格式保存起来 读和写 ini相关的知识,希望对你有一定的参考价值。
https://files.cnblogs.com/files/xe2011/WinAppINI20191226232153.rar
/* 2019年12月26日 22:31:38
* [info]
* group = a,b,c,d
*
* 需求 修改ini配置信息的group值
*
* 1添加:
* 往group中添加一个值
* 2移除:
* 从group中的值移除一个值
* 3重命名:
* 查找,找到修改
*
* 1 读取group的值,把它转换成一个字符串数组,
* 移除所有空行,把数组重新添加到一个列表中,行为空则不添加
* 添加: 将要添加的值添加到列表中
* 将列表转换成一行的字符串,行与行之间用 都好隔开
*
*
* 2 读取group的值,把它转换成一个字符串数组,
* 移除所有空行,把数组重新添加到一个列表中,行为空则不添加
* 删除: 判断列表中是否有 要删除的值,有就删除掉,没有不操作
* 将列表转换成一行的字符串,行与行之间用 都好隔开
*
*
*/
//读行的文本 到 列表 /// <summary> /// aaa,dfd,hhh,,ff,hello ->转换成 列表 同时删除空行 /// </summary> /// <param name="text"> aaa,dfd,hhh,,ff,hello</param> /// <returns></returns> public static 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 static 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 static 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, ""); } } public static string RenameString(string resString, string findString,string newName) { //读行的文本 到 列表 //[删除] //重命名 if (resString.Contains(",")) { findString = findString.Trim(); List<string> list = ReadString(resString); int index = list.IndexOf(findString); if (index != -1)//存在 { if (list.IndexOf(newName) == -1) //重命名后,不和已有的成员不能重名 { list[index] = newName; } } //转换成一行文本 resString = string.Join(",", list.ToArray()); if (resString.EndsWith(",")) resString = resString.Substring(0, resString.Length - 1); return resString; } else { return resString.Replace(findString, newName); } } 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); } private void button重命名_Click(object sender, EventArgs e) { textBox1.Text = RenameString(textBox1.Text, textBox2.Text,textBox3.Text); }
以上是关于将多行文本以单行的格式保存起来 读和写 ini的主要内容,如果未能解决你的问题,请参考以下文章