Verbs: Inspect Statement Initialize Statement String & Unstring Statement

You might also like

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 23

VERBS

INSPECT STATEMENT INITIALIZE STATEMENT STRING & UNSTRING STATEMENT

The INSPECT Statement

Applications of the INSPECT Statement 1. To count the number of occurrences of a given character in a field. 2. To replace specific occurrences of a given character with another character.

The INSPECT STATEMENT


Format

INSPECT identifier-1 TALLYING {identifier-2 FOR {{ALL} {LEADING} {CHARACTERS}} {identifier-3} {literal-1}}

[{BEFORE} {AFTER} INITIAL {identifier-4} {literal-2}]...

EXAMPLES

INSPECT ITEM1 TALLYING CTR1 FOR SPACES

INSPECT ITEM2 TALLYING CTRL2 FOR CHARACTERS BEFORE INITIAL SPACE INSPECT ITEM3 TALLYING CTRL3 FOR LEADING ZEROS ITEMS RESULT ITEM1=---67CTRL1=4 ITEM2=01787CTRL2=5 ITEM3=007800 CTRL3=2 MUST MOVE ZERO INTO ALL CTRL VAR

MOVE 0 TO CTRLA INSPECT ITEMA TALLYING CTRLA FOR ALL SPACES IF CTRA > 0 PERFORM ERR-RTN END-IF

AN ERROR ROUTINE IS PERFORMED IS ANY SPACES EXIST.

STATEMENT

MEANING
COUNT THE NO: OF OCCURENCES OF 5 UNTIL FIRST SPACE OCCURS
COUNT THE NO: OF OCCURENCES OF 5 AFTER FIRST SPACE OCCURS

INSPECT ITEMA TALLYING CTRLA FOR ALL 5 BEFORE INITIAL SPACE

INSPECT ITEMB TALLYING CTRLB FOR ALL 5 AFTER INITIAL SPACE

Clauses Following For in the INSPECT Statement 1. ALL {identifier-3} {literal-1} 2. LEADING {identifier-3} {literal-1} 3. CHARACTERS
1. If ALL is specified, every occurrence of the specified character in the field will be counted. Eg. INSPECT ITEMF TALLYING CTRLF FOR ALL ZEROS ITEMF 102050 CTRLF3 BEFORE INITIAL 2 .CTRLF1

2. If LEADING is specified, all occurrences of the specified character preceding any other character will be tallied.
Eg. INSPECT ITEM1 TALLYING CTRL1 FOR LEADING 9 ITEM199129 CTRL1=2

INSPECT ITEM1 TALLYING CTRL1 FOR LEADING SPACE ITEM1--12CTRL1=2

3. If CHARACTERS is specified, all characters in the field will be tallied. This may be used to determine the size of a field. Eg. INSPECT ITEMD TALLYING CTRLD FOR CHARACTERS AFTER INITIAL 2 ITEMD12349 CTRLD=3

The INSPECT STATEMENT

Format 2

INSPECT identifier-1 REPLACING {{CHARACTERS} {{ALL} {LEADING} {FIRST}} {identifier-2} {literal-1}} BY {identifier-3} {literal-2} [{BEFORE} {AFTER} INITIAL {identifier-4} {literal-3}]}..

To replace specific occurrences of a given character with another character.

INSPECT DATE1 REPLACING ALL - BY / BEFORE10-25-98 AFTER10/25/98 INSPECT SNO1 REPLACING ALL SPACES BY - BEFORE08 98 34 AFTER08-98-34 INSPECT ITEM1 REPLACING FIRST X BY Y BEFOREABCXYZ AFTERABCYYZ INSPECT ITEM1 REPLACING LEADING 1 BY 3 BEFORE INITIAL 2 BEFORE112111 AFTER332111

INITIALIZE STATEMENT

01 WS-REC1 05 NAME PIC XXX. 05 AMT1 PIC 999. 05 AMT2 PIC 999. 05 TOTAL PIC 9999.

PROCEDURE DIVISION.
INITIALIZE WS-REC1.

AMT1,AMT2,TOTAL ALL SET TO ZEROS AND WILL SET ALL THE OTHER FIELDS TO SPACES.

STRING STATEMENT

USED TO COMBINE SEVERAL FIELDS TO FORM ONE CONCISE FIELDCONCATENATION 05 NAME 10 LAST-NAME PIC X(10). 10 FIRST-NAME PIC X(10). 10 MIDDLE-NAME PIC X(10).

SYNTAX

STRING {IDENTIFIER-1 / LITERAL-1} DELIMITED BY {IDENTIFIER-2 LITERAL-2 SIZE} INTO IDENTIFIER-3

STRING FIRST-NAME DELIMITED BY MIDDLE-NAME DELIMITED BY LAST-NAME DELIMITED BY INTO FULL-NAME

ONCE A BLANK IS REACHED, WE STOP TRANSMITTING THAT FIELD. BUT HERENOW FULL-NAME IS THOMASALVAEDISON, AS NO BLANK SPACES WERE TRANSMITTED. SO INSERT DELIMITED BY SIZE NOW FULL NAMETHOMAS ALVA EDISON

THE DELIMITER SIZE MEANS THAT THE ENTIRE CONTENTS OF THE SPECIFIED LITERAL IS TRANSMITTED. SO EACH TIME DELIMITED BY SIZE IS EXECUTED ,A BLANK POSITION IS TRANSMITTED.

IF WE MOVE THE 3 COMPNENTS & PRINT THEM WE WOULD GET COCHIN KER 682020 spaces

To take care of these spaces.


STRING CITY DELIMITED BY
, DELIMTED BY SIZE STATE DELIMITED BY DELIMITED BY SIZE ZIP DELIMITED BY SIZE INTO ADDRESS1 DISPLAY ADDRESS1

COCHIN,KER 682020
NOTE- THE PREV CODING WOULD BE WRONG IF THE STATE WAS NEW YORK, AS THE SPACE IS PRESENT, SO WE HAVE TO GIVE DELIMITED BY {ie 2 SPACES}

POINTER option Syntax: STRING.[WITH POINTER identifier-1]

MOVE 1 TO WS-COUNT STRING FIRST-NAME DELIMITED BY INTO NAME-OUT WITH POINTER WS-COUNT

When string is performed ws-count gets incremented by 1 for every char moved into name-out. Eg: NAME-OUT PAUL then WS-COUNT=5 Means ready to reference the 5th position in NAME-OUT

To obtain the no: of chars moved we should subtract 1 from the count or initialise the count to zero,but then u will have to add one to it , for positioning a new data item.

UNSTRING

It may be used to convert keyed data to a more appropriate form for storing it.

SYNTAX: UNSTRING identifier-1 [DELIMITED BY [ALL]{identifier-2 literal-1}] [OR [ALL]{identifier-3/literal-3}] INTO identifier-4

WORKING-STORAGE SECTION 77 NAME-IN PIC X(36) DISPLAY ENTER NAME:LAST,MIDDLE,FIRST DISPLAY ALL SEPERATED BY COMMAS ACCEPT NAME-IN

01 REC1 02NAME-OUT 03 LAST-NAME PIC X(15) 03 MIDDLE-NAME PIC X(10) 03 FIRST-NAME PIC X(11)

UNSTRING NAME-IN DELIMITED BY , INTO LAST-NAME MIDDLE-NAME FIRST-NAME


We may use any literal even a blank, as a delimiter,but they have to be non-numeric.

NAME-INEDISON,ALVA,THOMAS LAST-NAMEEDISON MIDLE-NAMEALVA FIRST-NAMETHOMAS

WELL IF U LOOKED OUT FOR ONE MORE SLIDE AM SORRYAM DONE PHEW!!!

You might also like