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

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

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

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

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

textual
Листинг программы
    class Program
    {
        const int ParagraphStartCount = 5;  
 
        static void Main(string[] args)
        {
            var fileName = @"E:\Документы\Text.txt";
            File.WriteAllLines(fileName, new string[] {
                "     Абзац 1",
                "Текст абзаца 1",
                "",
                "     Абазац 2",
                "Тест абзаца 2",
                "",
                "     Абазац 3",
                "Текст абзаца 3",
            });
 
            var lines = File.ReadAllLines(fileName).ToList();
            var k = 1;
            var paragraphStart = new String(' ', ParagraphStartCount); 
            
            
            var list = DeleteParagraph(lines, k, paragraphStart);
 
            File.WriteAllLines(fileName, list);
 
 
            Console.WriteLine(String.Join("\r\n", File.ReadAllLines(fileName)));
            Console.ReadKey();
        }
 
        private static IEnumerable<string> DeleteParagraph(List<string> lines, int k, string paragraphStart)
        {
            var flag = false;
            var pk = -1;
            return lines.Where(x =>
                {
                    if (x.StartsWith(paragraphStart))
                    {
                        pk++;
                        if (pk == k) flag = true;
                        else if (pk == k + 1)
                        {
                            flag = false;
                        }
                    }
                    return !flag;
                }
                  );
        }
    }

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


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

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

7   голосов , оценка 4.571 из 5
Похожие ответы