【发布时间】:2020-11-09 17:51:14
【问题描述】:
我正在尝试创建一个已完成注册的登录系统。我想在你按下登录按钮的地方设置它,然后它使用 StreamReader 读取已使用我的注册表单更新的文件。问题是我已经构建了文件的编写方式(例如:当用户输入他们的详细信息时,它会将他们的详细信息保存在一个结构中,例如 Username: johndoe Password: Password1 using StreamWriter 在我的注册表单中)。但是当我使用 StreamReader 时,它会读取整行而不是某些部分。如何只读取文本文件的某些部分?
注册表单代码:
bool valid = true;
List<string> errorMessages = new List<string>();
if (string.IsNullOrWhiteSpace(txtUsername.Text))
{
valid = false;
errorMessages.Add("Username cannot be left empty.");
}
if (string.IsNullOrWhiteSpace(txtPassword.Text))
{
valid = false;
errorMessages.Add("Please enter a password.");
}
if (txtConfirmPass.Text != txtPassword.Text)
{
valid = false;
errorMessages.Add("Passwords do not match. Please enter matching passwords.");
}
if (valid == false)
{
string message = string.Join(Environment.NewLine, errorMessages);
MessageBox.Show(message, "Validate Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
else if(valid == true)
{
Random rnd = new Random();
string userID = rnd.Next(0, 100000).ToString("D6");
//Use StreamWriter class.
using (StreamWriter sw = new StreamWriter("Test.txt", true))
{
sw.Write("\n" + "UserID: " + userID + "\n");
sw.Write("Username: " + txtUsername.Text + "\n");
sw.Write("Password: " + txtPassword.Text + "\n");
sw.Write("------------------------------------");
MessageBox.Show("Details have been saved");
frmLogin login = new frmLogin();
login.Show();
this.Hide();
}
}
登录表单代码:
private void btnLogin_Click(object sender, EventArgs e)
{
bool valid = false;
using (StreamReader sr = new StreamReader("Test.txt"))
{
if(txtboxUser.Text == sr.ReadToEnd() && txtboxPass.Text == sr.ReadToEnd())
{
valid = true;
MessageBox.Show("Granted.");
}
else if(valid == false)
{
MessageBox.Show("Error");
}
}
}
【问题讨论】:
标签: c# visual-studio winforms