Как прочитать многострочные данные из файла с указанного фрагмента до указанного фрагмента? - C#
Формулировка задачи:
Всех с наступающим!
Есть файл с содержанием:Database: vip_stroitel Table: material [5 columns] +-----------+-------------+ | Column | Type | +-----------+-------------+ | doska | tinytext | | brus | tinyint(4) | | kirpich | varchar(16) | | sippanel | varchar(16) | | blol | char(1) | +-----------+-------------+ Database: vip_stroitel Table: smeta [2 columns] +----------+-------------+ | Column | Type | +----------+-------------+ | ypodpis | tinyint(2) | | npodpis | varchar(24) | +----------+-------------+
Нужно прочитать как то все строки (на C#) начиная с фрагментов: "Database: vip_stroitel" до фрагмента: "+-----------+-------------+" и каждую ложить в одну строку и собирать в string list.
Номера строк начальных и конечных фрагментов всегда случайные.
Количество таких таблицы всегда разное (Может быть одна а может быть и 10 и более таких таблиц в одном файле).
1).Эти строки читаем в одну строку: 1 строка: "Database: vip_stroitel Table: material [5 columns] +-----------+-------------+ | Column | Type | +-----------+-------------+ | doska | tinytext | | brus | tinyint(4) | | kirpich | varchar(16) | | sippanel | varchar(16) | | blol | char(1) | +-----------+-------------+" 2).А эти строки в новую строку 2 строка: "Database: vip_stroitel Table: smeta [2 columns] +----------+-------------+ | Column | Type | +----------+-------------+ | ypodpis | tinyint(2) | | npodpis | varchar(24) | +----------+-------------+"
Решение задачи: «Как прочитать многострочные данные из файла с указанного фрагмента до указанного фрагмента?»
textual
Листинг программы
static List<string> ReadFile(string path) { var result = new List<string>(); StringBuilder sb = null; using (var reader = new StreamReader(path)) { while (!reader.EndOfStream) { var line = reader.ReadLine(); if (line.StartsWith("Database:", StringComparison.InvariantCultureIgnoreCase)) { sb = new StringBuilder(); sb.AppendLine(line); } else if (string.IsNullOrWhiteSpace(line)) { result.Add(sb.ToString()); continue; } else sb.AppendLine(line); } } result.Add(sb.ToString()); return result; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д