Как переписать данные файла

182
18 апреля 2022, 07:20

Формат содержимого файла: дата,фамилия сотрудника,кол-во часов роботы,проделанная работа.

Пример: 03.11.2020,Иванов,8,помыл полы.

В методе происходит переписывание отчёта, в данном случае нужно переписать только кол-во часов, и вот я встал в ступор.

Как переписать, если я не знаю заранее сколько часов сотрудник проделал работы в определённый день?

    private void rewriteRep(User user, DateTime date, int hours)
    {
        if (!Helper.CheckEmployeeExists(user))
            throw new ArgumentException("Ошибка... Такого пользователя не существует!",nameof(user));
        if (!Helper.IsReportWritten(user, date))
            throw new ArgumentException($"Отчёта за {date:d} не существует!", nameof(date));
        string str = string.Empty;
        using (StreamReader reader = File.OpenText(Helper.RolePathParser(user)))
        {
            str = reader.ReadToEnd();
        }
        str = str.Replace(string.Format($"{date:d},{user.LastName}, /* как?! */"),
                           string.Format($"{date:d},{user.LastName},{hours}")); // проблемное место
        using (StreamWriter file = new StreamWriter(Helper.RolePathParser(user)))
        {
            file.Write(str);
        }
    }
Answer 1
    private void rewritingRepProcess(User user, DateTime date, int hours)
    {
        string path = Helper.RolePathParser(user);
        string line = "";
        string temp = "";
        string content = "";
        using (var reader = new StreamReader(path))
            content = reader.ReadToEnd();
        using (var reader = new StreamReader(path))
        {
            while ((line = reader.ReadLine()) != null)
            {
                if (line.Contains(string.Format($"{date:d}")) && line.Contains(user.LastName))
                {
                    temp = line;
                    break;
                }
            }
        }
        var item = temp.Split(',');
        string ad = string.Format($"{item[0]},{item[1]},{hours},{item[3]}");
        content = content.Replace(temp, ad);
        using (var writer = new StreamWriter(path))
            writer.Write(content);
    }
READ ALSO
Путь содержит недопустимые знаки C#

Путь содержит недопустимые знаки C#

При обращении к файлу выдает исключение:

164
Unity Вопрос про Scene и Game

Unity Вопрос про Scene и Game

подскажите, может кто знает, почему когда запускаешь Game в Unity вся механика игры работает, а когда пытаешься реализовать механику в окне Scene ничего...

145
Почему я получаю эту ошибку? (BLAZOR C #)

Почему я получаю эту ошибку? (BLAZOR C #)

Я попытался запустить следующий компонент и получил ошибку, которая сбрасывает все мое программное обеспечение:

149