如何在COBOL中写入比最大LRECL长的输出?
您是否曾经在COBOL中使用超过最大LRECL的VBS或FBS文件? 我想编辑比32760长得多的LOB(大对象)记录,将它们写入文件,并将它们传输到Unix服务器。如何在COBOL中写入比最大LRECL长的输出?,cobol,jcl,Cobol,Jcl,您是否曾经在COBOL中使用超过最大LRECL的VBS或FBS文件? 我想编辑比32760长得多的LOB(大对象)记录,将它们写入文件,并将它们传输到Unix服务器。 如果你已经有经验,如果你能给我一些处理的技巧,那就太好了。以下是关于 您可以为QSAM文件中的跨区记录编码记录模式 分配给磁带或直接访问设备。不要 HFS中文件的请求跨区记录。你可以省略这个词 记录模式子句。编译器确定要使用的录制模式 如果最大记录长度(字节)加上4大于 在block CONTAINS子句中设置的块大小 对于程序中
如果你已经有经验,如果你能给我一些处理的技巧,那就太好了。以下是关于 您可以为QSAM文件中的跨区记录编码记录模式 分配给磁带或直接访问设备。不要 HFS中文件的请求跨区记录。你可以省略这个词 记录模式子句。编译器确定要使用的录制模式 如果最大记录长度(字节)加上4大于 在block CONTAINS子句中设置的块大小 对于程序中格式为S的文件,编译器将确定 使用与格式V相同的规则的最大记录长度。 长度取决于您对RECORD子句的使用 创建包含format-S记录的文件时 COBOL比块中的剩余空间大,写入一段 记录将填充该块。记录的其余部分存储在 下一个或多个块取决于其长度。COBOL支持QSAM 跨记录的长度可达32760字节 检索具有format-S记录的文件时,程序可以 只检索完整的记录
下面是一个存储长度超过32760字节的记录的示例。通过ISPF编辑不支持分段记录。它们有点奇怪。您可以从COBOL(或其他符合LE标准的语言)调用C运行时例程 通过这种方式,您可以将I/O委托给C运行时,并用COBOL完成其余逻辑
有关所选I/O功能所需参数的文档,请参阅。Matt Doug Arter的记忆!Ray,你还记得IBM在COBOL中添加VBS支持的时候吗?IIRC在VB是禁忌的那一天(那时ISAM是玩家)至少在1982年。。。我老了。
[...]
Working-Storage Section.
01 CONSTANTS.
05 WS-FILE-OPTN PIC X(003) VALUE Z'rb'.
01 WORK-AREAS.
05 WS-FILE POINTER VALUE NULL.
05 WS-FILE-NM PIC X(255).
[...]
Procedure Division.
[...]
CALL 'FOPEN' USING
BY REFERENCE WS-FILE-NM
BY REFERENCE WS-FILE-OPTN
RETURNING WS-FILE
END-CALL
IF WS-FILE = NULL
[error handling, maybe call perror()]
END-IF