The UNSTRING statement used to separate single string to multiple based on the delimiter provided in the UNSTRING. It needs at least two destination identifier or literals. It can only separate alphabetic and alpha-numeric items. END-STRING, DELIMITED BY, TALLYING, WITH POINTER, ON OVERFLOW and NOT ON OVERFLOW clause is optional in UNSTRING usage.
UNSTRING {Variable-1} [DELIMITED BY SIZE/SPACE/specified delimiter] INTO {Variable-A} [DELIMITER IN delimete-1][COUNT IN counter-1] {Variable-B} [DELIMITER IN delimete-2][COUNT IN counter-2] …….. …….. [WITH POINTER ws-pointer] [TALLYING ON identifier-t] [ON OVERFLOW imperative-statements-1] [NOT ON OVERFLOW imperative-statements-2] [END-UNSTRING.]
COUNT IN: COUNT IN clause associated with a particular destination data item. COUNT IN holds the count of no of character passed to the particular destination identifier/data item.
TALLYING: TALLYING clause holds the count of destination strings affected by UNSTRING. TALLYING clause associated with all the destination data items.
UNSTRING NAME-OUT DELIMITED BY SPACE INTO FIRST-NAME LAST-NAME INITIAL ON OVERFLOW DISPLAY “ERROR FOUND” NOT ON OVERFLOW DISPLAY “SUCCESSFUL” END-UNSTRING.
In the Data Division, the user has defined the following input record to be acted upon by the UNSTRING statement:
01 INV-RCD.
05 CONTROL-CHARS PIC XX.
05 ITEM-INDENT PIC X(2 ).
05 FILLER PIC X.
05 INV-CODE PIC X(1 ).
05 FILLER PIC X.
05 NO-UNITS PIC 9(6).
05 FILLER PIC X.
05 PRICE-PER-M PIC 99999.
05 FILLER PIC X.
05 RTL-AMT PIC 9(6).99.
The next two records are defined as receiving fields for the UNSTRING statement. DISPLAY-REC is to be used for printed output. WORK-REC is to be used for further internal processing.
01 DISPLAY-REC
05 INV-NO PIC X(6).
05 FILLER PIC X VALUE SPACE
05 ITEM-NAME PIC X(2 ).
05 FILLER PIC X VALUE SPACE
05 DISPLAY-DOLS PIC 9(6).
01 WORK-REC 05 M-UNITS PIC 9(6).
05 FIELD-A PIC 9(6).
05 WK-PRICE REDEFINES FIELD-A PIC 9999V99.
05 INV-CLASS PIC X(3).
The user has also defined the following fields for use as control fields in the UNSTRING statement.
01 DBY-1 PIC X, VALUE IS ".".
01 CTR-1 PIC 99, VALUE IS ZERO.
01 CTR-2 PIC 99, VALUE IS ZERO.
01 CTR-3 PIC 99, VALUE IS ZERO.
01 CTR-4 PIC 99, VALUE IS ZERO.
01 DLTR-1 PIC X.
01 DLTR-2 PIC X.
01 CHAR-CT PIC 99, VALUE IS 3.
01 FLDS-FILLED PIC 99, VALUE IS ZERO.
In the Procedure Division, the user writes the following UNSTRING statement to move subfields of INV-RCD to the subfields of DISPLAY-REC and WORK-REC:
UNSTRING INV-RCD DELIMITED BY ALL SPACES OR "/" OR DBY-1 INTO ITEM-NAME COUNT IN CTR-1, INV-NO DELIMITER IN DLTR-1 COUNT IN CTR-2, INV-CLASS, M-UNITS COUNT IN CTR-3, FIELD-A, DISPLAY-DOLS DELIMITER IN DLTR-2 COUNT IN CTR-4 WITH POINTER CHAR-CT TALLYING IN FLDS-FILLED ON OVERFLOW GO TO UNSTRING-COMPLETE.
Before the UNSTRING statement is issued, the user places the value 3 in the CHAR-CT (the pointer item), so as not to work with the two control characters at the beginning of INV-RCD. In DBY-1, a period is placed for use as a delimiter, and in FLDS-FILLED (the tallying item) the value 0 is placed. The following data is then read into INV-RCD
ZYFOUR─PENNY─NAILS 707890/BBA 475120 00122 000379.50
When the UNSTRING statement is executed, the following actions take place:
At the end of execution of the UNSTRING statement, DISPLAY-REC contains the following data:
707890 FOUR-PENNY-NAILS 000379 WORK-REC contains the following data: 475120000122BBA
CHAR-CT (the pointer field) contains the value 55, and FLD-FILLED (the tallying field) contains the value 6.
A well-maintained product backlog is crucial for successful product development. It serves as a single…
Incremental value to the customer refers to the gradual delivery of small, functional parts of…
A Product Market refers to the group of potential customers who might be interested in…
The Professional Agile Leadership - Evidence-Based Management (PAL-EBM) certification offered by Scrum.org is designed for…
The Professional Agile Leadership (PAL I) certification, offered by Scrum.org, is designed to equip leaders…
Choosing the right Scrum Master Certification depends on your current experience and career goals. If…