Не могу записать строку в текстовый файл два раза

У меня есть две строки с программой 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"

Вы должны удалить "еще" из кода

Это все

Другие вопросы по тегам