如何替换文本文件中的相同文本

时间:2012-09-22 03:34:31

标签: c# .net io replace text-files

我创建了一个c#windows登录表单,我将用户名或密码保存到文本文件中,但每当我使用相同的用户名或密码时,我在该文本文件中取消新位置之前已保存。

但我想要的是替换已保存在该文本文件中的相同用户名或密码。

这是我的代码:

    private void button1_Click(object sender, EventArgs e)
    {
        try
        {
            FileStream fs = new FileStream("data.txt", FileMode.Append,
            FileAccess.Write);
            StreamWriter sw = new StreamWriter(fs);
            sw.Write("Email ID: ");
            sw.WriteLine(textBox1.Text);
            sw.Write("Password: ");
            sw.Write(textBox2.Text);
            sw.WriteLine();
            sw.WriteLine();
            sw.Flush();
            sw.Close();
            fs.Close();
        }
        catch (Exception)
        {
            MessageBox.Show("Error", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            this.Close();
        }
            MessageBox.Show("DONE", "Done", MessageBoxButtons.OK, MessageBoxIcon.Information);
            textBox1.Clear();
            textBox2.Clear();
    }

3 个答案:

答案 0 :(得分:0)

您可以在文本文件中搜索用户名,如果存在,则可以编辑密码。 但你最好使用数据库:)

答案 1 :(得分:0)

首先搜索相同的用户名,即使用'File.ReadAllText'方法读取整个文件进行搜索,你可以通过比较用户名文本和文件文本进行搜索。
一旦你获得用户名,通过使用c#的内置函数计算或获取该用户名文本的位置,然后将你的写指针移动到用户名文本,&替换它。

答案 2 :(得分:0)

为什么要更换它?当你已经在文件中有它们时,什么都不做。我对你的代码做了一些修改。看看这个:

private void button1_Click(object sender, EventArgs e)
{
    try
    {
        string file= File.ReadAllText("data.txt");
        FileStream fs = new FileStream("data.txt", FileMode.Append,
        FileAccess.Write);
        StreamWriter sw = new StreamWriter(fs);
        if(file.Contains(textBox1.Text+"\r\n"+textBox2.Text);
        {
           //Do nothing if you already have them in the file
        }
        else
        {
          sw.WriteLine("Email ID: "+textBox1.Text);
          sw.Write("Password: "+textBox2.Text);
          sw.WriteLine();
          sw.WriteLine();
        }
        sw.Flush();
        sw.Close();
        fs.Close();
    }
    catch (Exception)
    {
        MessageBox.Show("Error", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
        this.Close();
    }
        MessageBox.Show("DONE", "Done", MessageBoxButtons.OK, MessageBoxIcon.Information);
        textBox1.Clear();
        textBox2.Clear();
}