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

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

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

Кому-нибудь удалось проанализировать текстовый отчет обратно в полезный импорт данных с текстовыми шаблонами (например, регулярными выражениями) в С# или 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.    

person Zachary Scott    schedule 24.03.2011    source источник


Ответы (2)


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

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

Вспомогательный класс для парсинга текста

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

person Jonathan Wood    schedule 24.03.2011

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

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

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

person agpcardoso    schedule 23.06.2020