У меня есть код здесь и на основе ввода пользователем, я бы хотел изменить выбранную мной линию выбора. Тем не менее, я могу только временно изменить строку текста, и когда я снова напишу файл, текст не будет перезаписан навсегда.Как редактировать номера в файле .txt?
Вот мой код:
public struct classMates
{
public string first;
public string last;
public int ID;
}
static classMates[] readClassMates(classMates[] classMateInfo)
{
StreamReader sr = new StreamReader(@"C:\class.txt");
int count = 0;
while (!sr.EndOfStream)
{
classMateInfo[count].first = sr.ReadLine();
classMateInfo[count].last = sr.ReadLine();
string idTemp = sr.ReadLine();
classMateInfo[count].ID = Convert.ToInt32(idTemp);
count++;
}
sr.Close();
return classMateInfo;
}
static void editClassMates(classMates[] classMateInfo)
{
Console.Write("Who's number would you like to change? ");
string classMateInput = Console.ReadLine();
for (int i = 0; i < classMateInfo.Length; i++)
{
if (classMateInfo[i].first.Equals(classMateInput))
{
Console.Write("Enter new number: ");
string temp = Console.ReadLine();
int classMateNumber = Convert.ToInt32(temp);
classMateInfo[i].ID = classMateNumber;
Console.WriteLine("You have successfully changed {0}'s number to {1}.", classMateInfo[i].first,classMateInfo[i].ID.ToString());
}
}
}
static void Main()
{
classMates[] classMateInfo = new classMates[43];
listClassMates(classMateInfo);
editClassMates(classMateInfo);
listClassMates(classMateInfo);
}
Я знаю, что я имел в виду использовать File.WriteAllText()
, но я не знаю, как использовать этот фрагмент в мой код.
Не совсем ясно, какая проблема у вас есть, но файл 'File.WriteAllText' не является особенно очевидным решением. Я бы, вероятно, начал писать метод преобразования значения classMates в строку ... Как отдельный вопрос, существуют различные проблемы с вашим кодом - например, использование изменяемых типов значений, соглашений об именах, доступа к ресурсу без ' используя 'statement' или' try'/'finally'. Конечно, стоит почитать эти вопросы. –
Вы уже знаете, как читать файл. Просто напишите метод, который записывает файл и в основном делает то же самое. Но теперь с помощью StreamWriter. –
Как сказано выше, он только временно записывает файл. Когда я хочу изменить их число, я ввожу новый номер и изменяю идентификатор в файле class.txt. Однако это не надолго. –