2

有没有人有一种快速的方法来查找字段的 COBOL 字帖起始位置?例如:

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-HAIRCOLOR 列从第 7 列开始。但是,我正在处理的实际文件有大约 250 个变量,总计 3400 字节。用手动计算器浏览并添加 PIC 值是可怕的,在我的有生之年不会发生。当我检查系统的输出时,在 vi 中有这个数字会很好;即,BGG-EYECOLOR 值是否落在正确的列中?

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

4

5 回答 5

2

如果是用于大型机,您可以使用cb2xml将字帖转换为 xml(带有字段 Start)。

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

RecordEdityor 可用于多种 Cobol 方言(大型机、OpenCobol)。

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

Legstar也值得一看。Legstar 最初是从在线数据传输的 dealloy 开始的,但他们一直在扩展。

于 2013-03-22T12:32:54.357 回答
1

免责声明:我维护https://www.cobolcopybook.co.in

您好,请查看网站https://www.cobolcopybook.co.in,该网站专为分析 COBOL 字帖而设计。

例如。您的输入字帖是(如问题所述):

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

然后输出将是:

SR#  LEVEL   FIELD NAME                 PICTURE   TYPE      START      END   LENGTH

0  1  BGG-FILE-REC.                 @         AN            1       85       85
1  3  BGG-RCD-KEY.                  @         AN            1       85       85
2  5  BGG-DUDENAME                  XXXX.     AN            1        4        4
3  5  BGG-DUDEADDR                  XX.       AN            5        6        2
4  5  BGG-HAIRCOLOR                 X(71).    AN            7       77       71
5  5  BGG-EYECOLOR                  X(8).     AN           78       85        8

我希望这能解决你的问题。

于 2018-07-02T11:11:26.343 回答
0

You are worried about how hard it is to line up the PIC clauses in the same column?

Open it in one of the many Eclipse variants and control-shift-F or whatever.

You know it compiles nicely regardless of columns, and has for almost 30 years, they really don't matter any more.

The low rent way would be to compile it and cut&paste your cross reference listing over your copybook.

于 2013-03-26T04:29:25.130 回答
0

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

于 2013-03-22T13:21:38.933 回答
0

如果您使用的是大型机,您可以使用“文件帮助 - 视图”。从 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 屏幕,其中描述了该副本中存在的每个变量的变量名称、子句、编号、开始、结束和长度。

于 2015-03-15T14:46:31.483 回答