#c# #visual-studio
#c# #visual-studio
Вопрос:
я создаю приложение, в котором пользователи могут входить в систему, а затем приложение проверяет, соответствует ли пользовательский ввод текстовому файлу
я пытался использовать класс StreamReader, но я просто не мог понять это. и если кто-нибудь из вас сочтет это глупым вопросом, я только начал изучать c # и я действительно ценю, если кто-нибудь может помочь. Теперь проблема в том, что я хочу сравнить ввод пользователя, который он / она вводит, с содержимым текстового файла. в данном случае это мой собственный рабочий стол. как мне это сделать? и код уже сохраняет введенные имя пользователя и пароль к файлу. я предпринял попытку в последнем выражении «if». Спасибо
private void Button_Click_1(object sender, RoutedEventArgs e)
{
string username = Username.Text;
string password = Password.Text;
using (StreamWriter sw = new StreamWriter("C:\Users\omere\Desktop\Username.txt"))
{
sw.WriteLine(username);
sw.WriteLine(password);
}
if (username != "C:\Users\omere\Desktop\Username.txt")
{
ErrorDisp.Text = "Login failed. Check if you have typed in the correct username and password";
}
}
Комментарии:
1.
username != "C:\Users\omere\Desktop\Username.txt"
скорее всего, это не имя пользователя, это имя файла. Некоторые примеры содержимого файлов были бы полезны.2. Кроме того, что происходит при запуске вашего кода?
3. Почему код использует
StreamWriter
? Может быть, попробовать File. Метод ReadAllLines4. Получить содержимое файла и затем сравнить? Однако я бы серьезно усомнился в таком подходе.
Ответ №1:
попробуйте это
private void Button_Click_1(object sender, RoutedEventArgs e)
{
string username = Username.Text;
string password = Password.Text;
using (StreamWriter sw = new StreamWriter("C:\Users\omere\Desktop\Username.txt"))
{
sw.WriteLine(username);
sw.WriteLine(password);
}
var lines = File.ReadAllLines("C:\Users\omere\Desktop\Username.txt");
if (username != lines[0] || password != lines[1] )
{
ErrorDisp.Text = "Login failed. Check if you have typed in the correct username and password";
}
}