COBOL Manual for TNS and TNS/R Programs
Procedure Division Verbs
HP COBOL Manual for TNS and TNS/R Programs—522555-006
9-282
UNSTRING
PROCEDURE DIVISION.
WHATS-NEXT.
* PROMPT FOR A NAME AS IT WOULD BE TYPED ON AN ENVELOPE
DISPLAY "Enter a name (or a space to terminate):".
ACCEPT WHOLE-NAME
IF WHOLE-NAME = SPACES
STOP RUN
END-IF
* INITIALIZE
MOVE SPACES TO NAMES-TABLE, REST-OF-NAME
MOVE 0 TO NAME-COUNT
* GET EACH CONSECUTIVE BLOCK OF CHARACTERS ENDING IN ONE
* OR MORE SPACES INTO A NAME (I) AND COUNT THE BLOCKS.
UNSTRING WHOLE-NAME
DELIMITED BY ALL " " INTO
NAMES (1) NAMES (2) NAMES (3)
NAMES (4) NAMES (5) NAMES (6)
NAMES (7) NAMES (8) NAMES (9) NAMES (10)
TALLYING IN NAME-COUNT
* LAST ONE COPIED IS LAST-NAME
MOVE NAMES (NAME-COUNT) TO LAST-NAME
* IGNORE LEADING SPACES
IF NAMES (1) = SPACES
SET FIRST-NAME-INDEX TO 2
ELSE
SET FIRST-NAME-INDEX TO 1
END-IF
* CONCATENATE OTHER NAMES INTO REST-OF-NAME
MOVE 1 TO POINTER-1
PERFORM COLLECT-REST
VARYING NAME-INDEX FROM FIRST-NAME-INDEX BY 1
UNTIL NAME-INDEX = NAME-COUNT
DISPLAY "Last name is......" LAST-NAME
DISPLAY "Rest of name is..." REST-OF-NAME
DISPLAY " "
GO TO WHATS-NEXT.
COLLECT-REST.
STRING NAMES (NAME-INDEX) DELIMITED BY SPACE
INTO REST-OF-NAME
POINTER POINTER-1.
Example 9-71. UNSTRING Statement (page 2 of 2)