命名规则:
设定培训人员的TSO ID为DEVPxx,其中XX表示培训人员ID的两位数字,需要编制的程序名为TESTXXY,其中Y表示第几只练习程序从A开始。例如:DEVP30的第二只练习程序“TEST30B”。
输入文件:
DEVP24.PTOT.CLFMN01,现有三条记录。
输出文件:
DEVP*.PTOT.CLFMN01.CP(各自建立)
文件数据格式:
PTOT.ONL.MACLIB(CLFMN01)
程序功能要求:读入输入文件数据,做下述修改后,写入到输出文件
a) 将文件记录中:MN01:-USER-ID这个域(变量)的值设定为“DEVP* ”
b) 将域:MN01:-TXN-DATA中所有的字符 ”A” 替换为 “Z”。
程序框架:其中已包含了如何在程序中COPY文件数据格式 – CLFMN01
DEVP24.SOURCE(GLCTEST)
编译方法:
修改编译作业流DEVP24.SOURCE(CBBAT)的参数后,提交查错。
提示:
此程序应包含两个文件定义,分别为输入输出
输入输出文件的通信区定义可以以一个01层的变量(假设为X)代替,即不需于文件节的通信区定义其数据格式。数据格式的定义(CLFMN01)可以如框架程序般COPY在WORKING-STORAGE SECTION,然后通过MOVE语句将READ到的数据传到CLFMN01-REC当中。
IDENTIFICATION DIVISION.
PROGRAM-ID. TEST02.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT IN-FILE ASSIGN TO INFILE.
SELECT OT-FILE ASSIGN TO OTFILE.
DATA DIVISION.
FILE SECTION.
FD IN-FILE LABEL RECORD IS STANDARD RECORDING MODE IS F.
01 IN-REC PIC X(XXX).
FD OT-FILE LABEL RECORD IS STANDARD RECORDING MODE IS F.
01 OT-REC PIC X(XXX).
WORKING-STORAGE SECTION.
01 WK-REC.
COPY CLFMN01 REPLACING ==:Q:== BY ==CLFMN01==.
01 EOF PIC X(001) VALUE 'N'.
PROCEDURE DIVISION.
CONTROL SECTION.
OPEN INPUT IN-FILE OUTPUT OT-FILE.
PERFORM MAIN UNTIL EOF = 'Y'.
CLOSE IN-FILE OT-FILE.
STOP RUN.
CONTROL-EXIT.
EXIT.
MAIN SECTION.
READ INFILE AT END MOVE 'Y' TO EOF
GO TO MAIN-EXIT.
MOVE IN-REC TO WK-REC.
MOVE 'DEVP*' TO CLFMN01-USER-ID.
IF CLFMN01-TXN-DATA = 'A'
THEN
MOVE 'Z' TO CLFMN01-TXN-DATA
END-IF.
MOVE WK-REC TO OT-REC.
WRITE OT-REC.
MAIN-EXIT.
EXIT.
我不用OICQ有什么问题就在这里沟通吧。
刚才的代码是我参考你给的条件写的,只是传上来格式有问题。
因为COPYBOOK的格式和其他的原因我只能写个大概,因此只是给你个参考。具体实现你再想想看看吧。