Удалить из файла абзац с номером - 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; } ); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д