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

124
20 января 2021, 10:30

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

Цель: сделать удаление из файла

ниже мои попытки сделать это:

private static Dictionary<string, int> AllNames()
    {
        return File
          .ReadLines(@"C:\Users\D205\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();
        if (System.IO.File.ReadAllLines(@"C:\Users\D205\Desktop\картинки\results.txt").Length >5)
        {
            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}";  //Controls.Find($"label{i + 28}", true).First().Text = tops[i].Value.ToString();
                   //удаление tops.key

            }
            for (...)
            {
                //прописать удаление из файла по key 
                   //удаление этих элементов из словаря
            }

        }
Answer 1

Если к примеру надо удалить строку из файла, то можно так: (для длинных строк тоже)

Regex r = new Regex("Текст Который надо найти в файле");
string str = string.Empty;
using (System.IO.StreamReader reader = System.IO.File.OpenText(@"файл"))
  {
   str = reader.ReadToEnd();
  }
str = r.Replace(str, ""); 
using (System.IO.StreamWriter file = new System.IO.StreamWriter(@"файл"))
  {
   file.Write(str);
  }

Заменяет текст который вам надо пустой строкой

READ ALSO
Проблема с обновлением данных datagrid

Проблема с обновлением данных datagrid

Всем приветПрограмма для проведения соревнований

84
Постфиксный декремент

Постфиксный декремент

большая просьба помочь разобраться со следующим примером:

116
Удалить подстроку c#

Удалить подстроку c#

Текст самого задания: Отредактировать заданное предложение, удаляя из него все слова с нечетными номерами и переворачивая слова с четными...

98