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

テキストファイルでユーザー名を検索できます。ユーザー名が存在する場合は、パスワードを編集できます。ただし、これにはデータベースを使用することをお勧めします:)

于 2012-09-22T03:39:36.977 に答える
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 に答える