Chinaunix首页 | 论坛 | 博客
  • 博客访问: 345546
  • 博文数量: 90
  • 博客积分: 847
  • 博客等级: 准尉
  • 技术积分: 1373
  • 用 户 组: 普通用户
  • 注册时间: 2012-08-02 10:54
个人简介

跌打滚爬中的小菜鸟...

文章分类

全部博文(90)

文章存档

2015年(5)

2013年(47)

2012年(38)

我的朋友

分类: 其他UNIX

2015-12-04 15:30:19

大前提:要看DSPF在定义时有没有声明INDARA.

声明INDARA表示该DSPF的指示器会存放在separate indicator area.

不声明则表示该DSPF的指示器会被存放在 the record area中。

COBOL编译器编译会将其变异为一个变量字段;并且对于DSPF来说,它的指示器还是有两类不同用途的,从而造成一部分指示器是INPUT的,另外一部分是OUTPUT的!!

 

---------------------------------------------------------------------

 

对于INDARA来讲,COBOL中需要如下声明指示器和使用指示器

 FMT CB ......-A+++B++++++++++++++++++++++++++++++++++

0020.00        01  INDIC-AREA.                       

0021.00            05  FUNC51  INDICATOR 51  PIC 1.  

0023.00            05  FUNC03  INDICATOR 03  PIC 1.  

0025.00            05  FUNC05  INDICATOR 05  PIC 1.  

0027.00            05  FUNC09  INDICATOR 09  PIC 1.  

说明如下:

1)必须使用INDICATOR(S)关键字,后面必须使用数字1。这样是定义BOOL类型。

2)指示器名字必须根DDS中使用指示器名字一致;可以乱序!!(本质是COBOL在运行时会按实际的指示器名称来mapping

READ  DSPF-FILE               

      FORMAT  IS  "FORMAT1"   

      INDICATORS ARE INDIC-AREA

END-READ.                     

--

WRITE  DSPF-REC                

       FORMAT IS "FORMAT1"     

       INDICATORS ARE INDIC-AREA

END-WRITE.                     

 

 

 

对于非INDARA来讲,COBOL的编译后结果为,


 001300 FILE SECTION.                                                                            15/09/26

 001400 FD  DSPF-FILE     LABEL RECORDS ARE OMITTED                                              15/09/26

 001500                   DATA  RECORD IS DSPF-REC.                                              15/09/26

 001600 01  DSPF-REC.                                                                            15/09/26

 001700     COPY DDS-ALL-FORMATS OF A90D.                                                        15/09/26

+000001       05  A90D-RECORD PIC X(51).                                             <-ALL-FMTS         

+000002*  INPUT FORMAT:FORMAT1    FROM FILE A90D       OF LIBRARY HLMPGRJZO          <-ALL-FMTS         

+000003*                                                                             <-ALL-FMTS         

+000004       05  FORMAT1-I     REDEFINES A90D-RECORD.                               <-ALL-FMTS         

+000005           06 FORMAT1-I-INDIC.                                                <-ALL-FMTS //用户按键是input

+000006                07 IN03             PIC 1  INDIC 03.                          <-ALL-FMTS         

+000007*                  END OF PGROGRAM                                            <-ALL-FMTS         

+000008                07 IN05             PIC 1  INDIC 05.                          <-ALL-FMTS         

+000009*                  SHOW F5                                                    <-ALL-FMTS         

+000010                07 IN09             PIC 1  INDIC 09.                          <-ALL-FMTS         

+000011*                  SHOW F9                                                    <-ALL-FMTS         

+000012           06 ITEMNUM               PIC X(10).                                <-ALL-FMTS         

+000013* OUTPUT FORMAT:FORMAT1    FROM FILE A90D       OF LIBRARY HLMPGRJZO          <-ALL-FMTS         

+000014*                                                                             <-ALL-FMTS         

+000015       05  FORMAT1-O     REDEFINES A90D-RECORD.                               <-ALL-FMTS         

+000016           06 FORMAT1-O-INDIC.                                                <-ALL-FMTS         

+000017                07 IN51             PIC 1  INDIC 51.                          <-ALL-FMTS//程序控制用的,算是output

+000018           06 USRNAME               PIC X(10).                                <-ALL-FMTS         

+000019           06 JOBNAME               PIC X(10).                                <-ALL-FMTS         

+000020           06 HIDETXT               PIC X(30).                                <-ALL-FMTS         

 001800 WORKING-STORAGE SECTION.                                                                 15/09/26

 

 

阅读(2281) | 评论(0) | 转发(0) |
0

上一篇:COMP-3数据样例

下一篇:Exit Program VS stop run

给主人留下些什么吧!~~