Я хочу читать данные из текстового файла через StreamReader, редактировать определенную строку и записывать ее в файл (не добавлять строки, а обновлять их) через StreamWriter.
Я уже создал файл и заполнил его строками. Следующий код предназначен только для редактирования строки из этого файла.
Код работает плавно, но не обновляет данные. Он просто позволяет строке, как она есть в файле.
var path=@"C:\sample.txt";
StringBuilder data = new StringBuilder();
using (StreamReader read=new StreamReader(path))
{
var line = "";
var fields = line.Split(',');
while (!read.EndOfStream)
{
line = read.ReadLine();
fields = line.Split(',');
if (fields[0] == txtAccountNumber.ToString())
data.AppendLine(fields[0] + "," +
fields[1] + "," +
account.Balance.ToString());
else
data.AppendLine(line);
}
read.Close();
}
using(StreamWriter write=new StreamWriter(path))
{
write.WriteLine(data);
write.Flush();
write.Close();
}
txtAccountNumber.ToString()
выглядит подозрительно. ЕслиtxtAccountNumber
- это текстовое поле winforms, вы должны написатьtxtAccountNumber.Text
. Msdn: docs.microsoft.com/en-us/dotnet/api/ - person mortb   schedule 27.05.2020object
, у которого есть метод.ToString()
. Если у класса нет собственной реализации, будет использоваться реализация по умолчанию вobject
. Реализация по умолчанию выведет имя типа класса. Я сам допустил эту ошибку :) - person mortb   schedule 27.05.2020