hi,
I want to write a COBOL pgm to open a PDS and list all the members.
Requirements:
It should display the number of members in the PDS
It should display the name of the members
Can anybody help in this regard?
How we can access PDS and its Members thru COBOL ?
Moderators: dbzTHEdinosauer, Moderator Group
- narendra_darwani
- Member
- Posts: 7
- Joined: Wed Dec 24, 2008 6:18 pm
Code: Select all
IDENTIFICATION DIVISION.
PROGRAM-ID. XXXXXXXX.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT DIRECTORY-FILE ASSIGN TO UT-S-PDS
ORGANIZATION IS SEQUENTIAL
ACCESS IS SEQUENTIAL.
DATA DIVISION.
FILE SECTION.
FD DIRECTORY-FILE
RECORDING MODE F.
01 FD-DIRECTORY-RECORD PIC X(256).
WORKING-STORAGE SECTION.
77 IX-1 PIC S9(4) COMP.
77 TRASH PIC S9(4) COMP.
77 HALF-WORDS PIC S9(4) COMP.
01 DIRECTORY-RECORD.
02 USED-BYTES PIC S9(3) COMP.
02 REST-OF-RECORD PIC X(254).
01 DIRECTORY-ENTRY.
02 MEMBER-NAME PIC X(8).
02 TTR PIC X(3).
02 WS-INDC PIC X.
01 WORK-FIELD.
05 WORK-FIELD-NUMERIC PIC S9(4) COMP.
01 FILLER.
03 WS-BIT PIC S9(4) COMP
OCCURS 8 INDEXED BY WS-BIT-NDX.
03 WS-COMP PIC S9(4) COMP VALUE ZERO.
03 FILLER REDEFINES WS-COMP.
05 FILLER PIC X(1).
05 WS-BYTE PIC X(1).
01 FILLER.
03 FILLER PIC 9.
88 EOF-DIRECTORY VALUE 1.
88 NOT-EOF-DIRECTORY VALUE 0.
03 FILLER PIC 9.
88 EOF-MEMBER VALUE 1.
88 NOT-EOF-MEMBER VALUE 0.
03 FILLER PIC 9.
88 IS-ALIAS VALUE 1.
88 IS-NOT-ALIAS VALUE 0.
PROCEDURE DIVISION.
OPEN INPUT DIRECTORY-FILE.
READ DIRECTORY-FILE.
SET NOT-EOF-DIRECTORY TO TRUE.
PERFORM UNTIL EOF-DIRECTORY
MOVE FD-DIRECTORY-RECORD TO DIRECTORY-RECORD
MOVE 1 TO IX-1
PERFORM UNTIL USED-BYTES - IX-1 < 11 OR
REST-OF-RECORD (IX-1:1) = HIGH-VALUES
MOVE REST-OF-RECORD (IX-1:12) TO DIRECTORY-ENTRY
PERFORM PROCESS-MEMBER
MOVE LOW-VALUES TO WORK-FIELD
MOVE WS-INDC TO WORK-FIELD (2:1)
DIVIDE WORK-FIELD-NUMERIC BY 32 GIVING TRASH
REMAINDER HALF-WORDS
COMPUTE IX-1 = IX-1 + 12 + HALF-WORDS * 2
SET IS-NOT-ALIAS TO TRUE
MOVE WS-INDC TO WS-BYTE
PERFORM VARYING WS-BIT-NDX FROM 8 BY -1
UNTIL WS-BIT-NDX < 1
DIVIDE WS-COMP BY 2 GIVING WS-COMP REMAINDER
WS-BIT(WS-BIT-NDX)
END-PERFORM
IF WS-BIT(1) NOT ZERO
THEN SET IS-ALIAS TO TRUE
END-IF
END-PERFORM
IF REST-OF-RECORD (IX-1:1) = HIGH-VALUES
THEN SET EOF-DIRECTORY TO TRUE
ELSE
READ DIRECTORY-FILE
END-IF
END-PERFORM.
CLOSE DIRECTORY-FILE.
MOVE 0 TO RETURN-CODE.
STOP RUN.
PROCESS-MEMBER.
DISPLAY MEMBER-NAME.
Code: Select all
//STEP0001 EXEC PGM=XXXXXX
//STEPLIB DD DISP=SHR,DSN=HLQ.LOAD
//SYSOUT DD SYSOUT=*
//PDS DD DISP=SHR,DSN=HLQ.PDS,RECFM=U,LRECL=256
//*
- narendra_darwani
- Member
- Posts: 7
- Joined: Wed Dec 24, 2008 6:18 pm
FREE TUTORIALS
Tutorials
Free tutorials from mainframegurukul
- JCL Tutorial
Covers all important JCL concepts. - Cobol Tutorial
This tutorials covers all Cobol Topics from STRING to COMP-3. - DB2 Tutorial
DB2 Tutorial focuses on DB2 COBOL Programming. - SORT Tutorial
This Tutorial covers all important aspects of DFSORT with examples - CICS Tutorial
This CICS tutorial covers CICS concepts and CICS Basics, CICS COBOL Programming.
Interview
Mainframe Interview questions
- Cobol Interview Questions
50+ Interview Questions - JCL Interview Questions
50+ Interview Questions - DB2 Interview Questions
100+ Interview Questions - CICS Interview Questions
70+ Interview Questions - VSAM Interview Questions
27 Interview Questions
Other References
Mainframe Tools and others
- XPEDITER Reference
Explains how we can debug a program - FILEAID Reference
Explains how to browse , edit and delete datasets - Change Man Reference
Quick Start tutorial on Changeman - Abend Reference
Important Abend codes explained - FaceBook Page
MainframeGurukul FaceBook Page - LinkedIn Page
MainframeGurkul Linkedin Page