我有一个文本文件,我在其中添加,更新和删除数据(联系人)。每个联系人都在一行。现在,当我通过我的应用程序删除联系人时,我正在删除文件中的一行(用空字符串替换联系人)这导致联系人之间出现空行。我不想要这条空行。这是我写的代码片段:
private void btn_condel_Click(object sender, EventArgs e)
{
bufferedListView1.Items.Clear();
string fileContents = File.ReadAllText("C:\\sample.txt");
string replacedContents = fileContents.Replace(txt_editname.Text + "@" + txt_editno.Text,"");
File.WriteAllText("C:\\sample.txt", replacedContents);
// Rest of the code
在替换文件中的数据时,我需要做什么来消除这个空行。
答案 0 :(得分:2)
看起来解决这个问题的最简单方法就是抓住新的一行:
string replacedContents = fileContents.Replace(
txt_editname.Text + "@" + txt_editno.Text + System.Environment.NewLine,"");
答案 1 :(得分:0)
试试这个,
string fileContents = File.ReadAllText("C:\\sample.txt");
string replacedContents = fileContents.Replace(txt_editname.Text + "@" + txt_editno.Text,"");
File.WriteAllText("C:\\sample.txt", replacedContents.Trim());
答案 2 :(得分:0)
我还没有尝试过,但这应该可行:将文件读入字符串数组,将其转换为列表(因为您无法从数组中删除项目),删除联系人并将其余部分写回来到一个文件。如果您将文本文件(顺便说一句:您不能使用XML文件......?)解析为您自己的联系人数据类型,那么效果会更好。然后你有一个List,可以从那里删除一个对象。
string[] lines = File.ReadAllLines("C:\\sample.txt");
List<string> list = lines.ToList<string>();
list.Remove(txt_editname.Text + "@" + txt_editno.Text);
File.WriteAllLines("C:\\sample.txt", list.ToArray());