@Liza2282

Как удалить строки из текстового файла?

Например, игрок 1 находился на 5-м месте, а какой-то следующий игрок 2 побил этот рекорд и стал на 5-м месте, а игрок 1 на 6-м месте, вам нужно удалить игрока, который находится на 6-м месте из файла!

в этом коде есть словарь - ключ - имя игрока, значение - время в секундах (чем меньше - тем лучше)

Все результаты (ключ и значение) записываются в файл в другой форме, и в этой форме они копируются в словарь и прокручиваются из словаря по метке как конечный результат, но я не могу удалить проигрыватели из файла, который оставил рейтинг.

Как сделать удаление этого игрока в файле?

private static Dictionary<string, int> AllNames()
    {
        return File
          .ReadLines(@"C:\Users\HP\Desktop\картинки\results.txt")
          .Where(line => !string.IsNullOrWhiteSpace(line))
          .Select(item => item.Split(' '))
          .ToDictionary(items => items[0],
                        items => int.Parse(items[1]));
    }


    private void updateRatingLabels()
    {
        var tops = AllNames()
          .OrderBy(pair => pair.Value)                      
          .ThenBy(pair => pair.Key, StringComparer.Ordinal) 
          .Take(5)                                           
          .ToArray();


        for (int i = 18; i <= 22; ++i)
            Controls.Find($"label{i}", true).First().Text = "";

        for (int i = 28; i <= 32; ++i)
            Controls.Find($"label{i}", true).First().Text = "";


        for (int i = 0; i < tops.Length; ++i)
        {
            Controls.Find($"label{i + 18}", true).First().Text = tops[i].Key;
            Controls.Find($"label{i + 28}", true).First().Text = $"{tops[i].Value / 60}:{tops[i].Value % 60:00}";
        }
    }
  • Вопрос задан
  • 2797 просмотров
Пригласить эксперта
Ответы на вопрос 1
DanielDemidko
@DanielDemidko
Программист
Считать все строки из файла в память. В памяти удалить те строки, которые вам нужно удалить.
Перезаписать обратно список строк в файл.
var lines = File.ReadAllLines("lines.txt").ToList();
lines.RemoveAt(indexToRemove);
File.WriteAllLines("lines.txt", lines);
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы