有没有人有快速找到COBOL 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-HAIRCOLOR列从第7列开始。然而,我处理的实际文件有大约250个变量,总计3400个字节。用手工计算器费力地计算和添加PIC值是很可怕的,在我有生之年是不会发生的。当我检查系统的输出时,在vi中有这个数字会很好;也就是说,BGG-Eyecolor值是否落在正确的列中?
我可以编写一个perl脚本来注释这样的复制本,但在我这样做之前,我想知道是否有人有更平滑的方法来获得相同的值?
发布于 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最初是从在线数据传输的非合金开始,但他们已经扩展了。
发布于 2018-07-02 19:11:26
免责声明:我维护https://www.cobolcopybook.co.in
例如。您的输入副本是(正如前面提到的):
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我希望这能解决你的问题。
发布于 2013-03-22 21:21:39
如果您使用的是大型机,请使用FileAid的选项8。
https://stackoverflow.com/questions/15557062
复制相似问题