【发布时间】:2019-10-10 21:54:14
【问题描述】:
我是一名初级程序员。大约两周前我开始学习 c#,现在我正在编写一个简单的登录/注册程序,但这对我来说有点难。我的问题是:有这个
adat1= olvas.ReadLine(); 代码,我认为这是只读文本中的一行。如何实现读取所有行,然后选择我们写入控制台的用户名?在解决方案之后,我们将能够创建新用户。
谢谢大家的帮助!
我的源代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Threading;
namespace Gyak
{
class Program
{
static void Main(string[] args)
{
bool helyes = false;
do {
Console.Clear();
Console.WriteLine("1 = Login\n2 = Registration");
int valasz = int.Parse(Console.ReadLine());
if (valasz == 1)
{
StreamReader olvas = new StreamReader(@"D:\k\Gyakorlás 2\UserName.txt", Encoding.Default);
while (!olvas.EndOfStream)
{
string adat1;
helyes = true;
Console.Clear();
Console.WriteLine("Login");
Console.WriteLine("UserName: ");
Console.Write("Password: ");
Console.SetCursorPosition(10, 1);
string valasz1 = Console.ReadLine();
adat1 = olvas.ReadLine();
Console.SetCursorPosition(10, 2);
string valasz2 = Console.ReadLine();
if (adat1.StartsWith(valasz1))
{
string[] keresett_adat = adat1.Split(':');
string keresett_eredmény = keresett_adat[1];
if (valasz2 == keresett_eredmény)
{
Console.WriteLine("Login Succeeded");
Console.ReadLine();
}
else
{
Console.WriteLine("Access Denied!\nTry again!");
Console.ReadLine();
}
}
}
}
else if (valasz == 2)
{
StreamWriter iras = new StreamWriter(@"D:\k\Gyakorlás 2\UserName.txt", true, Encoding.Default);
helyes = true;
Console.Clear();
Console.WriteLine("Registration");
Console.WriteLine("UserName: ");
Console.Write("Password: ");
Console.SetCursorPosition(10, 1);
string valasz3 = Console.ReadLine();
Console.SetCursorPosition(10, 2);
string valasz4 = Console.ReadLine();
iras.WriteLine( "\n" + valasz3 + ":" + valasz4);
iras.Close();
}
else
{
helyes = false;
Console.WriteLine("Incorrect!");
Thread.Sleep(2000);
}
}while(helyes != true);
}
}
}
【问题讨论】:
-
File.ReadAllLines Method 可能感兴趣。同样File Class 中的其他方法。全部(预)加载后,循环通过它们会更快
标签: c# authentication split text-files streamreader