У меня есть следующая ситуация. Я создаю викторину в visual studio C# и хочу создать формы регистрации и входа. Когда пользователь регистрирует новую учетную запись, текстовый файл будет хранить свое имя пользователя и пароль и будет устанавливать высокий балл в 0. Каждая строка в текстовом файле выглядит так: имя пользователя, пароль, рекордер. ';' является разделителем. Я создал новый проект для создания формы регистрации/регистрации практики. Вот мой код для формы регистра:Как переопределить определенную строку в текстовом файле в C#
private void btnRegister_Click(object sender, EventArgs e)
{
if (txtPassword.Text == txtConfirmPassword.Text)
{
string newAccount = txtName.Text + ";" + txtConfirmPassword.Text + ";" + "0";
TextWriter account = new StreamWriter("../../TextFile/LogonDetails.txt", true);
account.WriteLine(newAccount);
account.Close();
MessageBox.Show("Account created");
}
и вот мой код формы входа
string line = "";
StreamReader myReader = new StreamReader("../../TextFile/LogonDetails.txt");
string[] accounts = new string[900000]; int value = 0;
while ((line=myReader.ReadLine()) != null)
{
string[] data = line.Split(';');
if ((data[0] == txtLoginName.Text) && (data[1] == txtLoginPassword.Text) && (int.Parse(data[2]) > int.Parse(txtScore.Text)))
{
value = 1;
break;
}
if ((data[0] == txtLoginName.Text) && (data[1] == txtLoginPassword.Text) && (int.Parse(data[2]) < int.Parse(txtScore.Text)))
{
value = 2;
break;
}
else
{
value = 3;
}
}
if (value == 1)
{
MessageBox.Show("Your score remains the same");
}
else if (value == 2)
{
string updatedAccount = txtLoginName.Text + ";" + txtLoginPassword.Text + ";" + txtScore;
TextWriter textAccounts = new StreamWriter("../../TextFile/LogonDetails.txt");
textAccounts.WriteLine(updatedAccount);
textAccounts.Close();
}
else if (value == 3)
{
MessageBox.Show("Account not found");
}
}
Так что мой вопрос, как я могу переопределить строку, хранящуюся в текстовом файле, если в этом case 'txtScore' больше данных [2]? Я попытался создать новую строку каждый раз, когда счет больше, но это кажется неэффективным. Есть ли способ, которым я могу переопределить строку, чтобы изменить значение оценки? Любая помощь с благодарностью
Вы имеете в виду 'overwrite' вместо' override'? – markpsmith
Вот что я имею в виду. Я хочу удалить одну строку и добавить новую. – kris594