从文件中删除空行

时间:2012-08-07 09:37:37

标签: c# file replace line

我有一个文本文件,我在其中添加,更新和删除数据(联系人)。每个联系人都在一行。现在,当我通过我的应用程序删除联系人时,我正在删除文件中的一行(用空字符串替换联系人)这导致联系人之间出现空行。我不想要这条空行。这是我写的代码片段:

    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

在替换文件中的数据时,我需要做什么来消除这个空行。

3 个答案:

答案 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());