Не могу записать строку в текстовый файл два раза
У меня есть две строки с программой aC# с именем eMail & password, и у меня есть регулярное выражение, которое проверяет, совпадает ли текст или нет, если две строки проверены, они сохранят эти две строки в 2 разных текстовых файлах, это мой код:
string eMail = textBox1.Text;
string password = textBox2.Text;
Regex email_Regex = new Regex(@"^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$");
Match email_Match = email_Regex.Match(eMail);
Regex password_Regex = new Regex("^.{4,20}$");
Match password_Match = password_Regex.Match(password);
if (!email_Match.Success)
{
MessageBox.Show(this,
"Please Enter A Valid Email Adress !",
"Error While Connecting !",
MessageBoxButtons.OKCancel,
MessageBoxIcon.Error,
MessageBoxDefaultButton.Button3);
}
else if (!password_Match.Success)
{
MessageBox.Show(this,
"Please Enter A Valid Password !",
"Error While Connecting !",
MessageBoxButtons.OKCancel,
MessageBoxIcon.Error,
MessageBoxDefaultButton.Button3);
}
else if (password_Match.Success)
{
File.WriteAllText(@"D:\Password.txt", password);
}
else if (email_Match.Success)
{
File.WriteAllText(@"C:\Email.txt", eMail);
}
когда я отлаживаю и тестирую свою программу, создается только один текстовый файл, первый (только Password.txt). Есть ли решение?
3 ответа
Измените это на:
if (!email_Match.Success)
{
MessageBox.Show(this,
"Please Enter A Valid Email Adress !",
"Error While Connecting !",
MessageBoxButtons.OKCancel,
MessageBoxIcon.Error,
MessageBoxDefaultButton.Button3);
}
else if (!password_Match.Success)
{
MessageBox.Show(this,
"Please Enter A Valid Password !",
"Error While Connecting !",
MessageBoxButtons.OKCancel,
MessageBoxIcon.Error,
MessageBoxDefaultButton.Button3);
}
else
{
File.WriteAllText(@"D:\Password.txt", password);
File.WriteAllText(@"C:\Email.txt", eMail);
}
потому что только один, если это возможно, в коде выше, если адрес электронной почты и пароль верны, он запишет в оба файла.
Вам не нужно проверять, было ли совпадение снова успешным, потому что вы проверяли, если оно не было успешным раньше:)
К тому времени, когда вы туда попали, вы знаете, что оба матча успешны. Просто используйте:
else (password_Match.Success)
{
File.WriteAllText(@"D:\Password.txt", password);
File.WriteAllText(@"C:\Email.txt", eMail);
}
Просто измените код в последнем 2-ом выражении "else if"
Вы должны удалить "еще" из кода
Это все