Как построить модель из текстового файла без заголовков, но с определенным форматом - PullRequest
0 голосов
/ 03 апреля 2019

У меня есть текстовый файл с определенным форматом. Я хочу прочитать этот текстовый файл и создать из него модель или связать с ней существующую модель.

1  AL300 SAMPLE
2  Station 1001
3 
4  SampleGrade
5  PROP-SUMMARY
6  5213
7  True
8  Burst C BS ( 181)
9  PROP-VALUES
10 Front
11 22.001
12 1
13 PROP-VALUES
14 Middle
15 22.0
16 3
17 PROP-SUMMARY
18 5213
19 0
20 Burst C BS ( 181)
21 PROP-VALUES
22 Middle
23 22.0
24 3
25 end AL300 SAMPLE
  1. Первая строка является текстом заголовка и не должна быть частью модели.

  2. Последняя строка указывает конец файла и не должна быть частью модели.

  3. Номера строк предназначены только для понимания. Исходный текстовый файл не будет его.
  4. Строка 2,3,4 представляет собой один набор данных, а строка 2 пуста (табуляция или каретка вернуться).
  5. Строка 5 (PROP-SUMMARY) до строки 16 - это другой набор данных, который содержит свои собственные данные (строка 6,7,8) и список PROP-VALUES (строка 9 и Строка 17). Строки 10,11,12 и 14,15,16 являются данными для PROP-VALUES.

Теперь я хочу создать модель, основанную на этом. Я планирую построить модель примерно так

public class SampleExportDto
{
    public SampleDetailsExportDto Sample { get; set; }
    public List<SummaryDto> Summary { get; set; }
}
public class SampleDetailsExportDto //SummaryDto
{
    public int    Id { get; set; }
    public string Name { get; set; }
    public string Info { get; set; }
}

public class SummaryDto
{
    public int    Id { get; set; }
    public string Name { get; set; }
    public string Info { get; set; }
    public List<ValuesDto> Values { get; set; }
}

public class ValuesDto
{
    public string Direction { get; set; }
    public string Height { get; set; }
    public string Width { get; set; }
}

Может ли кто-нибудь помочь мне в достижении этого, если предположить, что в каждой строке есть имя столбца, которое будет сопоставлено с моделью в данном DTO (объекте передачи данных)

...