Импортировать и анализировать текстовый файл, содержащий 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#. Однако, здесь, мне не ясно, какой тип текста вам нужно проанализировать (ваш пример не показывает фактический текст). Очевидно, вам нужен какой-то способ определить тип каждой строки.
Вот пара статей, которые могут помочь:
Я несколько лет работал с интеграциями коболов, мне приходилось разбивать текстовые строки на основе "книги коболов", в которой были спецификации полей.
Вы можете использовать agpc.fixedlayout для облегчения интеграции без необходимости использовать подстроки для получения информации о каждом поле.