0

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

    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

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

4

3 回答 3

2

看起来解决这个问题的最简单方法就是抓住新行:

string replacedContents = fileContents.Replace(
    txt_editname.Text + "@" + txt_editno.Text + System.Environment.NewLine,"");
于 2012-08-07T09:40:55.607 回答
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());
于 2012-08-07T09:49:17.793 回答
0

我没有尝试过,但这应该可以:将文件读入字符串数组,将其转换为列表(因为您无法从数组中删除项目),删除联系人并将其余部分写回文件. 如果您将文本文件(顺便说一句:您不能使用 XML 文件...?)解析为您自己的联系人数据类型,则效果会更好。然后你有一个列表,可以从那里删除一个对象。

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());
于 2012-08-07T09:50:53.023 回答