Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在COBOL中写入比最大LRECL长的输出?_Cobol_Jcl - Fatal编程技术网

如何在COBOL中写入比最大LRECL长的输出?

如何在COBOL中写入比最大LRECL长的输出?,cobol,jcl,Cobol,Jcl,您是否曾经在COBOL中使用超过最大LRECL的VBS或FBS文件? 我想编辑比32760长得多的LOB(大对象)记录,将它们写入文件,并将它们传输到Unix服务器。 如果你已经有经验,如果你能给我一些处理的技巧,那就太好了。以下是关于 您可以为QSAM文件中的跨区记录编码记录模式 分配给磁带或直接访问设备。不要 HFS中文件的请求跨区记录。你可以省略这个词 记录模式子句。编译器确定要使用的录制模式 如果最大记录长度(字节)加上4大于 在block CONTAINS子句中设置的块大小 对于程序中

您是否曾经在COBOL中使用超过最大LRECL的VBS或FBS文件? 我想编辑比32760长得多的LOB(大对象)记录,将它们写入文件,并将它们传输到Unix服务器。
如果你已经有经验,如果你能给我一些处理的技巧,那就太好了。

以下是关于

您可以为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