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