将一个文件的文件定义重新用于另一个文件而不打开/关闭它

时间:2018-01-16 12:29:01

标签: cobol

将file1的文件定义重新用于另一个,即没有打开/关闭文件1的文件2.

我有一个月度文件,我的要求是生成类似于每月文件的每日文件。两个文件的记录长度和文件定义是相同的。

我是否可以使用每月文件的FD来保存数据,并使用我的Daily文件的月度文件数据项进行一些验证,并在以后编写我的日常文件? 使用每月文件的FD变量进行了大量的验证,我不能使用每日文件的变量进行相同的验证,因为我需要在多个程序的许多地方进行更改/重写代码。

注意:我正在进行日常文件处理&每月处理结束后生成。 另外,我们使用的是UNIX环境。

如果无法提及上述方法,请建议我如何实现这一目标。

1 个答案:

答案 0 :(得分:0)

在打开文件之前,文件的记录区域不可用。 SAME RECORD AREA子句可用于提供别名。

   identification division.
   program-id. srac.
   environment division.
   input-output section.
   file-control.
       select optional monthly-file assign "monthly.dat"
           file status monthly-stat.
       select daily-file assign "daily.dat"
           file status daily-stat.
   i-o-control.
       same record area monthly-file daily-file.
   data division.
   file section.
   fd monthly-file.
   1 monthly-id pic 999.
   fd daily-file.
   1 daily-id pic 999.
   working-storage section.
   1 monthly-stat pic x(2).
   1 daily-stat pic x(2).
   procedure division.
       open input monthly-file daily-file
       display "monthly-stat:" space monthly-stat
       display "daily-stat:  " space daily-stat
       read daily-file
       display "monthly-id:" space monthly-id
       if monthly-id < 10
           add 100 to monthly-id
       end-if
       display "daily-id:  " space daily-id
       close monthly-file daily-file
       stop run
       .

monthly-stat: 05
daily-stat:   00
monthly-id: 001
daily-id:   101

在此示例中,每月和每日文件具有相同的记录描述条目;但是,月度文件不存在。然而,可以使用月度文件的数据名进行验证,修改或其他任何内容。