2013-03-21 88 views
1

有没有人有快速找到字段的COBOL copybook开始位置的方法?例如:Copybook字段开始位置

000100 01 BGG-FILE-REC.               
000200  03 BGG-RCD-KEY.              
000300   05 BGG-DUDENAME   PIC XXXX. 
000400   05 BGG-DUDEADDR   PIC XX. 
000500   05 BGG-HAIRCOLOR   PIC X(71). 
000600   05 BGG-EYECOLOR   PIC X(8). 

的BGG-染发列在第7栏开始不过,我处理实际文件中有大约250变量共计3400个字节。通过手动计算器来添加和添加PIC值是可怕的,而且在我的有生之年不会发生。当我检查系统的输出时,这个数字在vi中是很好的;即BGG-EYECOLOR值是否落在正确的列中?

我可以编写一个perl脚本来注释这样的副本,但在我这样做之前我想知道是否有人有更平滑的方式来获得相同的值?

回答

2

如果是用于大型机,则可以使用cb2xml将字帖转换为xml (带字段“开始”)。

或者,您可以使用RecordEditor。将Cobol Copybook导入 RecordEditor(请参阅RecordEditor-Cobol Notes)。 RecordEditor将计算 的字段位置。您可以将RecordEditor-Layout中的字段复制并粘贴到Excell或文本编辑器中。或者,您可以将记录布局导出为Xml。RecordEdityor可用于多种Cobol方言(Mainframe,OpenCobol)。

如果你正在阅读java中的文件,你应该看看JRecord。 JRecord将允许您使用Cobol Copybook以Java读取Cobol数据文件。

另外Legstar也许值得一看。 Legstar最初从与在线数据传输合作开始,但他们一直在分支。

+0

RecordEditor似乎是一个好球,从最近的问题。否则,如果在大型机数据地图上,其他编译器可能有其他选项。 – 2013-03-22 15:42:18

+0

事实上,我在Java中的Unix服务器上,编写代码来使用他们的字帖COBOL文件转换为我的指导值的位置。然而,这个答案让我告诉我的主机工作人员他们需要什么,以及如何获得它。谢谢! – noogrub 2013-03-22 19:57:53

+0

如果从Java读取,还应该看看http://jrecord.sourceforge.net/ – 2013-03-22 21:15:36

0

如果您位于大型机上,请使用FileAid的选项8。

+0

我公司是最便宜的廉价的,甚至我们有FileAid ......但是,你是正确的。编译列表会给出所需的信息,只要它从01级开始。 – mswanberg 2013-03-23 18:08:06

+0

我不相信这是真的。如果副本从大于01的级别开始,并且之前有数据,则整个副本将由其之前的字节数量决定。您可以减去,但如果您仅使用编译来查看字段偏移量,则确保它从01级开始更容易。 – mswanberg 2015-03-16 23:17:16

+0

当然,在这种情况下,减法是必需的,但并不麻烦。现在使用最新的IBM编译器,您甚至可以用十进制获得偏移量。只是让它太简单了。无论如何,让我们收拾一下评论。我不认为他们在这里至关重要。 OP不在大型机上,对布鲁斯回答后来透露的评论。 – 2015-03-16 23:41:25

0

您担心排列同一列中的PIC子句有多困难?

打开它在许多Eclipse变种和控制转变-F或其他之一。

你知道它编译很好,不管列是什么,并且已经有近30年了,它们真的不再重要。

低租金的方式是编译它并剪切&将您的交叉引用列表粘贴到您的字帖上。

0

如果您使用大型机,您可以使用“File aid - view”。 从ISPF主选项菜单转到

G ==> General Utility F ==> File-Aid Products 1 ==> File-AID 8 ==> VIEW

在屏幕下面的选项会:

Specify Record Layout Dataset to View:         

    Dataset name ===> 'XXXXXX.XXX.XXXX'     
    Member name ===> COPYZXY (Blank or pattern for member list) 

给你的“数据集名称”和“会员名称”(数据集的名字:您的PDS和会员名称:您的复印本名称)

按下输入键后,您将看到一个描述约 的VIEW LAYOUT屏幕变量名称,子句,编号,每个变量的开始,结束和长度能够出现在那本复制书中。

+0

如果OP在大型机上,他们只需查看编译列表,并告诉他们。 – 2015-03-15 17:34:02