Страницы

Поиск по вопросам

четверг, 28 марта 2019 г.

Помогите распарсить файл в C#

Есть файл с содержанием:
completed... Database: localhost_students +----------------------------+---------+ | Tabl | Rows | +----------------------------+---------+ | faculty_data | 2429 | | address_data | 1674 | | scholarship_data | 1460 | +----------------------------+---------+
Цель выдернуть и скормить в массив/колекцию только эту часть данных без cмвола"|" с разделителями ",":
| faculty_data | 2429 | | address_data | 1674 | | scholarship_data | 1460 |
Помогите пожалуйста составить правильную регулярку...


Ответ

Не стреляйте из пушки по воробьям, не нужны здесь регулярки
public Dictionary Execute(string filename) { var content = File.ReadAllLines(filename); var result = new Dictionary();
foreach (var line in content) { var spl = line.Split('|');
if (spl.Length == 4 && !string.Equals(spl[1].Trim(), "Tabl")) result.Add(spl[1].Trim(), spl[2].Trim()); }
return result; }
Основа -- string.Split. Этот метод ещё проще, чем указанный @ixSci - нет нужны искать начало фрагмента и конец, мы просто отбрасываем все строки, которые не имеют формата | что-то | что-то ещё |, дополнительно нужно лишь выкинуть шапку таблицы. Разумеется, мы при этом рассчитываем, что один файл содержит только одну таблицу - если не так, то нужно ловить начало-конец каждого фрагмента.
PS Опционально: Dictionary, List и т.п.

Комментариев нет:

Отправить комментарий