Master Mainframe Technologies - COBOL, JCL, DB2, VSAM, CICS & More
ABEND Codes SQLCODEs File Status Interview Prep Contact
← Back to String Handling
String Handling | Advanced | COBOL

Parse CSV Record

Problem Description

Parse a comma-separated record into individual fields. Input: "JOHN,DOE,35,NEW YORK"

Expected Output

4 separate fields extracted

Hints

Use UNSTRING with DELIMITED BY comma.

Solution

IDENTIFICATION DIVISION. PROGRAM-ID. PARSECSV. DATA DIVISION. WORKING-STORAGE SECTION. 01 WS-CSV-LINE PIC X(100). 01 WS-FIELDS. 05 WS-FIELD PIC X(25) OCCURS 10 TIMES. 01 WS-FIELD-CNT PIC 99 VALUE 0. 01 WS-I PIC 99. PROCEDURE DIVISION. DISPLAY "ENTER CSV LINE: ". ACCEPT WS-CSV-LINE. UNSTRING WS-CSV-LINE DELIMITED BY "," INTO WS-FIELD(1) WS-FIELD(2) WS-FIELD(3) WS-FIELD(4) WS-FIELD(5) TALLYING IN WS-FIELD-CNT. DISPLAY "PARSED " WS-FIELD-CNT " FIELDS:". PERFORM VARYING WS-I FROM 1 BY 1 UNTIL WS-I > WS-FIELD-CNT DISPLAY "FIELD " WS-I ": " WS-FIELD(WS-I) END-PERFORM. STOP RUN.

Explanation:

UNSTRING splits on delimiter. TALLYING counts fields.