FEB 14 2010 HelloWorld之后的第一步

本文介绍了一个使用COBOL语言进行数据集复制的过程。通过编写COBOL源代码实现从IBMUSER.HAVE.FUN(TESTDATA)数据集到IBMUSER.HAVE.SEX数据集的内容复制。文中详细展示了COBOL源码及相应的JCL作业控制语言。

情人节……郁闷的节日

刚刚独立在ThinkPad R400上的Vista Basic中配置了Hercules,基本还算顺利。记录一下前几天在家的工作——把IBMUSER.HAVE.FUN(TESTDATA)这个80列的MEMBER复制并新建一个叫IBMUSER.HAVE.SEX的PS数据集。

COBOL源码。师傅说A区就不用缩进了。

ExpandedBlockStart.gifIBMUSER.HAVE.FUN(CODE01)
 1 ----+----1----+----2----+----3----+----4----+----5----+----6----+----7--
 2       *                                                                 
 3        IDENTIFICATION DIVISION.                                         
 4         PROGRAM-ID.  CODE01.                                            
 5         AUTHOR.      VEJ.                                               
 6       *                                                                 
 7        ENVIRONMENT DIVISION.                                            
 8         INPUT-OUTPUT SECTION.                                           
 9          FILE-CONTROL.                                                  
10              SELECT FIN ASSIGN TO INFILE.                               
11              SELECT FOUT ASSIGN TO OUTFILE.                             
12       *                                                                 
13        DATA DIVISION.                                                   
14         FILE SECTION.                                                   
15          FD FIN                                                         
16              BLOCK CONTAINS 0 RECORDS                                   
17              RECORD CONTAINS 80 CHARACTERS                              
18              LABEL RECORDS ARE STANDARD                                 
19              RECORDING MODE IS F                                        
20              DATA RECORD IS FIN-STRING.                                 
21           01 FIN-STRING PIC X(80).                                      
22          FD FOUT                                                        
23              BLOCK CONTAINS 0 RECORDS                                   
24              RECORD CONTAINS 80 CHARACTERS                              
25              LABEL RECORDS ARE OMITTED                                  
26              RECORDING MODE IS F                                        
27              DATA RECORD IS FOUT-STRING.                                
28           01 FOUT-STRING PIC X(80).                                     
29         WORKING-STORAGE SECTION.                                        
30           01 END-OF-FILE PIC X VALUE 'N'.                               
31       *                                                                 
32        PROCEDURE DIVISION.                                              
33       *                                                                 
34         000-MAIN-LOGIC.                                                 
35              OPEN INPUT FIN                                             
36                   OUTPUT FOUT.                                          
37              PERFORM 100-READ-FILE THRU 100-READ-FILE-END.              
38              PERFORM 200-WRITE-FILE THRU 200-WRITE-FILE-END             
39                UNTIL END-OF-FILE = 'Y'.                                 
40              CLOSE FIN                                                  
41                    FOUT.                                                
42              STOP RUN.                                                  
43         000-MAIN-LOGIC-END.                                             
44       *                                                                 
45         100-READ-FILE.                                                  
46              READ FIN                                                   
47                AT END MOVE 'Y' TO END-OF-FILE.                          
48         100-READ-FILE-END.                                              
49       *                                                                 
50         200-WRITE-FILE.                                                 
51              MOVE FIN-STRING TO FOUT-STRING.                            
52              WRITE FOUT-STRING.                                         
53              PERFORM 100-READ-FILE THRU 100-READ-FILE-END.              
54         200-WRITE-FILE-END.                                             
55       *                                                                 

 编译用的JCL。

ExpandedBlockStart.gifIBMUSER.HAVE.FUN(COMPILE)
 1 ----+----1----+----2----+----3----+----4----+----5----+----6----+----7--
 2 //IBMUSERC JOB ACCT#,IBMUSER,CLASS=A,                                   
 3 //         MSGCLASS=H,MSGLEVEL=(1,1),                                   
 4 //         NOTIFY=&SYSUID                                               
 5 //COBCL EXEC IGYWCL                                                     
 6 //COBOL.SYSLIB DD DISP=SHR,DSN=IBMUSER.HAVE.FUN                         
 7 //LKED.SYSLMOD DD DISP=SHR,DSN=IBMUSER.COBOL.LOAD(C01)                  
 8 //SYSPRINT DD SYSOUT=*                                                  
 9 //COBOL.SYSIN DD DISP=SHR,DSN=IBMUSER.HAVE.FUN(CODE01)                  
10 //                                                                      

 

执行用的JCL。文件读写的重点啊。

ExpandedBlockStart.gifIBMUSER.HAVE.FUN(RUN)
 1 ----+----1----+----2----+----3----+----4----+----5----+----6----+----7--
 2 //IBMUSERR JOB ACCT#,IBMUSER,CLASS=A,MSGCLASS=A,                        
 3 //         MSGLEVEL=(1,1),NOTIFY=&SYSUID                                
 4 //RUN      EXEC PGM=C01                                                 
 5 //STEPLIB  DD DSN=IBMUSER.COBOL.LOAD,DISP=SHR                           
 6 //SYSPRINT DD SYSOUT=*                                                  
 7 //SYSOUT   DD SYSOUT=*                                                  
 8 //INFILE   DD DSN=IBMUSER.HAVE.FUN(TESTDATA),DISP=SHR                   
 9 //OUTFILE  DD DSN=IBMUSER.HAVE.SEX,DISP=(NEW,CATLG,DELETE),             
10 //         DCB=(RECFM=FB,LRECL=80,BLKSIZE=6400,DSORG=PS),               
11 //         SPACE=(TRK,1)                                                
12 //                                                                      

 

 

转载于:https://www.cnblogs.com/vejlc/archive/2010/02/14/1668314.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值