0

我创建了 ac# 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();
    }
4

3 回答 3

0

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

于 2012-09-22T03:51:07.227 回答
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();
}
于 2012-09-22T03:55:36.003 回答
0

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

于 2012-09-22T03:39:36.977 回答