1

我需要抓取包含打印机控制语言 (PCL) 的旧大型机文本文件以进行数据导入。改变大型机功能不是一种选择。打印输出包含产品销售信息并具有分层输出。

我希望我设置一个 Sql Server 集成服务导入 (SSIS)。最终这将是一个带有 SQL 2005 数据库的数据导入 ASP.NET MVC 3 网站,因此我们可以避免使用 SSIS。我目前正在构建 C# ASP.NET MVC 3 网站,因此使用相关技术应该是易于管理的。

有没有人成功地用 C# 或 SSIS 中的文本模式(如正则表达式)将文本报告解析回有用的数据导入?有没有使用状态设计模式的例子?

我发现很多这些答案显示了答案的一小部分:如何加载文本文件并在 C# 中获取第 n 列。这涉及更多。我需要根据我所处的导入状态用一种模式来识别每种线型。现成的软件会更好。

文本文件示例:

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.    
4

2 回答 2

1

我在 C# 中做了很多解析。但是,在这里,我不清楚您需要解析哪种文本(您的示例似乎没有显示实际文本)。显然,您需要一些方法来识别每一行的类型。

这里有几篇文章可能会有所帮助:

文本解析助手类

.NET 的 sscanf() 替代品

于 2011-03-24T16:49:13.110 回答
1

我已经使用 cobol 集成工作了几年,我不得不破坏基于具有字段规范的“cobol 书”中的文本字符串。

您可以使用 agpc.fixedlayout 来帮助集成,而无需使用子字符串来获取有关每个字段的信息

这是 nuget https://www.nuget.org/packages/AGPC.FixedLayout

于 2020-06-23T14:49:31.410 回答