Удалить из файла абзац с номером - C#

Узнай цену своей работы

Формулировка задачи:

Дано целое число K и текстовый файл. Удалить из файла абзац с номером K (абзацы выделяются с помощью красной строки— т.е. абзац начинается с 5 пробелов). Пустые строки между абзацами не учитывать и не удалять. Если абзац с данным номером отсутствует, то оставить файл без изменений.

Решение задачи: «Удалить из файла абзац с номером»

textual
Листинг программы
  1.     class Program
  2.     {
  3.         const int ParagraphStartCount = 5;  
  4.  
  5.         static void Main(string[] args)
  6.         {
  7.             var fileName = @"E:\Документы\Text.txt";
  8.             File.WriteAllLines(fileName, new string[] {
  9.                 "     Абзац 1",
  10.                 "Текст абзаца 1",
  11.                 "",
  12.                 "     Абазац 2",
  13.                 "Тест абзаца 2",
  14.                 "",
  15.                 "     Абазац 3",
  16.                 "Текст абзаца 3",
  17.             });
  18.  
  19.             var lines = File.ReadAllLines(fileName).ToList();
  20.             var k = 1;
  21.             var paragraphStart = new String(' ', ParagraphStartCount);
  22.            
  23.            
  24.             var list = DeleteParagraph(lines, k, paragraphStart);
  25.  
  26.             File.WriteAllLines(fileName, list);
  27.  
  28.  
  29.             Console.WriteLine(String.Join("\r\n", File.ReadAllLines(fileName)));
  30.             Console.ReadKey();
  31.         }
  32.  
  33.         private static IEnumerable<string> DeleteParagraph(List<string> lines, int k, string paragraphStart)
  34.         {
  35.             var flag = false;
  36.             var pk = -1;
  37.             return lines.Where(x =>
  38.                 {
  39.                     if (x.StartsWith(paragraphStart))
  40.                     {
  41.                         pk++;
  42.                         if (pk == k) flag = true;
  43.                         else if (pk == k + 1)
  44.                         {
  45.                             flag = false;
  46.                         }
  47.                     }
  48.                     return !flag;
  49.                 }
  50.                   );
  51.         }
  52.     }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.571 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы