0

我有一个以“a a”作为用户名和密码的clients.txt 文件。如果我没记错的话,这应该从中读取并告诉我它们是否存在于文件中。

编辑:在clients.txt文件的第二行我有“b b”作为用户名和密码,它们工作正常。

图片在这里:(新用户不能发布图片)

    StreamReader sr = new StreamReader("clients.txt");
    int findIndex = -1;
    string userpass = "#";
    while (findIndex == -1 && sr.ReadLine() != null)
    {
        findIndex = userpass.IndexOf(txtUserName.Text + " " + txtPassword.Password);
        userpass = sr.ReadLine();
    }
    sr.Close();
4

2 回答 2

3

您的 while() 语句正在吞噬行。您需要在正文中移动 ReadLine() 调用:

    while (findIndex == -1) {
        userpass = sr.ReadLine();
        if (userpass == null) break;
        findIndex = userpass.IndexOf(txtUserName.Text + " " + txtPassword.Password);
    }

不要将密码以明文形式放在文本文件中。

于 2012-05-02T23:21:04.433 回答
2

您在 while 语句中对 sr.Readline 的调用将读取(并忽略)文本文件的第一行,因此在第二次调用 sr.ReadLine 之后,被比较的第一行将是文本文件的第二行。

您需要重构您的代码,以便始终捕获来自对 sr.ReadLine 的调用的响应。

于 2012-05-02T23:16:07.617 回答