首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Copybook字段起始位置

Copybook字段起始位置
EN

Stack Overflow用户
提问于 2013-03-22 04:08:52
回答 5查看 5.5K关注 0票数 2

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

代码语言:javascript
复制
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脚本来注释这样的复制本,但在我这样做之前,我想知道是否有人有更平滑的方法来获得相同的值?

EN

回答 5

Stack Overflow用户

发布于 2013-03-22 20:32:54

如果适用于大型机,则可以使用cb2xml将复制本转换为xml (带有字段开头)。

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

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

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

另外,Legstar可能也值得一看。Legstar最初是从在线数据传输的非合金开始,但他们已经扩展了。

票数 2
EN

Stack Overflow用户

发布于 2018-07-02 19:11:26

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

例如。您的输入副本是(正如前面提到的):

代码语言:javascript
复制
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).

然后输出将是:

代码语言:javascript
复制
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

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

票数 1
EN

Stack Overflow用户

发布于 2013-03-22 21:21:39

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15557062

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档