Импортировать и анализировать текстовый файл, содержащий PCL: предложение техники ASP.NET C#?

Мне нужно очистить старый текстовый файл мэйнфрейма, содержащий язык управления принтером (PCL), для импорта данных. Изменение функций мэйнфрейма не вариант. Распечатка содержит информацию о продаже продукта и имеет иерархический вывод.

Я надеюсь, что я настроил импорт Sql Server Integration Service (SSIS). В конечном итоге это будет сайт ASP.NET MVC 3 для импорта данных с базой данных SQL 2005, поэтому мы могли бы избежать SSIS. В настоящее время я создаю сайты на C# ASP.NET MVC 3, поэтому использование соответствующих технологий должно быть управляемым.

Кому-нибудь удалось разобрать текстовый отчет обратно в полезный импорт данных с текстовыми шаблонами (такими как регулярные выражения) в C# или SSIS? Есть ли примеры, использующие шаблон проектирования состояний?

Я нашел много ответов, показывающих небольшую часть ответа: как загрузить текстовый файл и взять n-й столбец в C#. Это более сложно. Мне нужно идентифицировать каждый тип линии с помощью шаблона на основе того, в каком состоянии импорта я нахожусь. Готовое программное обеспечение будет еще лучше.

Пример текстового файла:

this part may be a header for the page which needs skipped
this part may be a header for the page which needs skipped
this part may be a header for the page which needs skipped

first line containing prices
  second line containing product description for the first line
    third line containing a related product (listing all flavors)
      fourth line containing a description for the third line
    [third and forth may repeat]
  [product set summary line]
[ repeat for next product]

this part may be a footer for the page that needs skipped
this part may be a footer for the page that needs skipped

at any point, the products will span between pages, 
having header and footer lines between product data.    

1 ответ

Я сделал много разборов в C#. Однако, здесь, мне не ясно, какой тип текста вам нужно проанализировать (ваш пример не показывает фактический текст). Очевидно, вам нужен какой-то способ определить тип каждой строки.

Вот пара статей, которые могут помочь:

Класс Помощника по анализу текста

Замена sscanf() для.NET

Я несколько лет работал с интеграциями коболов, мне приходилось разбивать текстовые строки на основе "книги коболов", в которой были спецификации полей.

Вы можете использовать agpc.fixedlayout для облегчения интеграции без необходимости использовать подстроки для получения информации о каждом поле.

Это nuget https://www.nuget.org/packages/AGPC.FixedLayout

Другие вопросы по тегам