Sunteți pe pagina 1din 65

COBOL

TRANSPARENCIES
(Unit 6)

COB_Tr
Ver. 1.0.0
04/12/199

Character Processing Verbs


INITIALIZE
COPY
STRING
UNSTRING
INSPECT

COB_Tr
Ver. 1.0.0
04/12/199

Character Processing Verbs (Contd..)


INITIALIZE Verb
Used for Setting Numeric Fields to Zeroes
and Non- Numeric Fields to Spaces.
Example.
01
01
1)

A
PIC X(2).
B
PIC 9(2).
INITIALIZE B.

Causes Zeroes to be Moved to B.


2)

INITIALIZE A.

Causes Spaces to be Moved to A.

COB_Tr
Ver. 1.0.0
04/12/199

Character Processing Verbs (Contd..)


INITIALIZE Verb (Contd..)
INITIALIZE Verb Serves as a Convenient
Alternative to the Use of MOVE in
PROCEDURE DIVISION.

COB_Tr
Ver. 1.0.0
04/12/199

Character Processing Verbs (Contd..)


INITIALIZE Verb (Contd..)
Example
01 A.

02
02
02
02
02
02

B
C
D
E
F
G

PIC A(2).
PIC X(2).
PIC 9V9.
PIC X/X.
PIC $9.99.
PIC X(2).

1) Using INITIALIZE Verb

INITIALIZE A.
Causes Spaces to be Moved to B, C, E, G
and Zeroes to be Moved to D & F.

COB_Tr
Ver. 1.0.0
04/12/199

Character Processing Verbs(Contd..)


INITIALIZE Verb (Contd..)
2) Using MOVE Verb
MOVE SPACES TO B, C, E, G.
MOVE ZERO
TO D, F.

COB_Tr
Ver. 1.0.0
04/12/199

Character Processing Verbs (Contd..)


INITIALIZE Verb (Contd..)
Using REPLACING Option With
INITIALIZE Verb We can Set Alphanumeric
Fields Other Than Spaces, Numeric Fields
Other Than Zeroes.
01

A.

02
02
02

B
C
D

PIC A(2).
PIC X(2).
PIC 9(2).

INITIALIZE A REPLACING

ALPHABETIC DATA BY NO
ALPHANUMERIC DATA BY N
NUMERIC DATA BY 0.

COB_Tr
Ver. 1.0.0
04/12/199

Character Processing Verbs (Contd..)


INITIALIZE Verb (Contd..)
As a Result of Above INITIALIZE Statement,
B will have Value NO , C will Contain N
and D will Contain 0 (zero).

COB_Tr
Ver. 1.0.0
04/12/199

Character Processing Verbs (Contd..)


COPY Verb
COBOL Provides a Library Facility.
LIBRARY in COBOL Means a Collection of
COBOL Source Program Elements Recorded
on Disk.
The Description of Most Widely Used Files
are Stored in the Text Library.
COPY Verb Facilitates to Use the Exact
Description of Such Files in the Program.

COB_Tr
Ver. 1.0.0
04/12/199

Character Processing Verbs (Contd..)


COPY Verb (Contd..)
In Text Library, the Following Record
Description is Stored Under the Text-Name
CUST-REC.
05
05

CUST-NO
PIC 9(5).
CUST-NAME PIC X(20).

Then the Following Line


01 CUSTOMER-RECORD.
COPY CUST-REC.

Will Copy the Description of CUST-REC in


the Program.
COB_Tr
Ver. 1.0.0
04/12/199

10

Character Processing Verbs (Contd..)


COPY Verb (Contd..)
The Use of COPY Verb Saves Time of the
Programmer as well as Reduces Errors From
Inconsistent Description.

COB_Tr
Ver. 1.0.0
04/12/199

11

Character Processing Verbs (Contd..)


STRING VERB
Two or More Strings of Characters can be
Combined to Form One String with the Help
of the Verb STRING.
This Process is Also Called as Concatenation.
Example :
05 EMPNAME.
10 FIRSTNAME PIC X(10) VALUE
THOMAS.
10 SECONDNAME PIC X(10) VALUE
ALVA.
10 SURNAME

COB_Tr
Ver. 1.0.0
04/12/199

12

PIC X(10) VALUE


EDISON.

Character Processing Verbs (Contd..)


STRING Verb (Contd..)
If the EMPNAME is Printed in the Report, it
will be as Follows :
(b Indicates a Blank Character)
THOMASbbbbALVAbbbbbbEDISONbbbb

Notice that the Spaces Between Firstname,


Second Name and Surname are Uneven.
Their Number Depends on the Length of the
Employee Name.

COB_Tr
Ver. 1.0.0
04/12/199

13

Character Processing Verbs (Contd..)


STRING VERB (Contd..)
Normally, Printed Reports Require Names
Separated by One Space as Follows :

COB_Tr
Ver. 1.0.0
04/12/199

...

EMPNAME

...
...

JOHN JOE BROWN


ANIL RAM ROY

14

Character Processing Verbs (Contd..)


STRING Verb (Contd..)
The STRING Command can be Used to
Achieve This.
MOVE SPACES TO WS-NAME.
STRING
FIRSTNAME
DELIMITED BY SPACE,
SPACE
DELIMITED BY SIZE,
SECOND NAME
DELIMITED BY SPACES,
SPACE
DELIMITED BY SIZE,
SURNAME
DELIMITED BY SPACE
INTO WS-NAME.

COB_Tr
Ver. 1.0.0
04/12/199

15

Character Processing Verbs (Contd..)


STRING Verb (Contd...)
The DELIMITED BY Sets the Limits of the
STRING Operation.
DELIMITED BY SIZE Transfers the
Complete Sending Area.
Use of STRING Statement :
01 SOCSEC
PIC 9(9).
01 EDITSOCSEC.

02
02
02
02
02

COB_Tr
Ver. 1.0.0
04/12/199

PART1 PIC 999.


FILLER
PIC X VALUE '-'.
PART2 PIC 99.
FILLER
PIC X VALUE '-'.
PART3 PIC 9999.

16

Character Processing Verbs (Contd..)


STRING Verb (Contd..)
STRING PART1 DELIMITED BY SIZE
PART2 DELIMITED BY SIZE
PART3 DELIMITED BY SIZE

INTO SOCSEC.
EDITSOCSEC :
Filler
3 3

Part 1

Filler
5

Part 2

Part 3

SOCSEC
3 3

COB_Tr
Ver. 1.0.0
04/12/199

17

3 4

3 4

Character Processing Verbs (Contd..)


STRING VERB (Contd..)
Transfer of Characters Into the Destination
Starts From First Character Location
Onwards.
It is Also Possible to Start the Transfer of
Characters From Some Other Location.
This is Possible by WITH POINTER
Clause.

COB_Tr
Ver. 1.0.0
04/12/199

18

Character Processing Verbs (Contd..)


STRING VERB (Contd..)
MOVE 2 TO WSOFFSET.
STRING
FIRSTNAME
DELIMITED BY SPACE,
SPACE DELIMITED BY SIZE,
SECONDNAME DELIMITED BY SPACE,
SPACE DELIMITED BY SIZE,
SURNAME
DELIMITED BY SPACE
INTO
WSNAME
WITH POINTER WSOFFSET.

COB_Tr
Ver. 1.0.0
04/12/199

19

Character Processing Verbs (Contd..)


STRING Verb (Contd..)
The ON OVERFLOW Clause is an
conditional statement.
It executes the specified statements if the
Result of the Concatenation is Longer Than
the Destination.

COB_Tr
Ver. 1.0.0
04/12/199

20

Character Processing Verbs (Contd..)


STRING Verb (Contd..)
STRING
COMPANYNAME
CITYSTATE
SPACE
ZIP

DELIMITED BY SIZE
DELIMITED BY ,
DELIMITED BY SIZE
DELIMITED BY SIZE

INTO OUTPUTREC
ON OVERFLOW
MOVE ALL * TO OUTPUTREC.

COB_Tr
Ver. 1.0.0
04/12/199

21

Character Processing Verbs (Contd..)


UNSTRING Verb
UNSTRING Verb is Used to Split a String of
Characters Into Several Parts.
Suppose, WSNAME Contains :
T H O M A S ,

A L V A ,

E D I

UNSTRING WSNAME
DELIMITED BY ,
INTO FIRSTNAME SECONDNAME
SURNAME.

COB_Tr
Ver. 1.0.0
04/12/199

22

S O N b b

Character Processing Verbs (Contd..)


UNSTRING Verb (Contd..)
After the Execution of Above Statement, the
Data-names Will Contain the Following
Values.
FIRSTNAME
- THOMAS
SECONDNAME - ALVA
SURNAME
- EDISON

COB_Tr
Ver. 1.0.0
04/12/199

23

Character Processing Verbs (Contd..)


UNSTRING Verb (Contd..)
DELIMITER IN Clause can be Specified to
Store the Delimiter .
WSNAME Contains

G A N E S H ,

G U P T A

UNSTRING
WSNAME
DELIMITED BY , INTO FIRST NAME
DELIMITER IN LIMIT SECOND NAME.

COB_Tr
Ver. 1.0.0
04/12/199

24

Character Processing Verbs (Contd..)


UNSTRING Verb (Contd..)
As a Result of Above UNSTRING Statement
G

FIRSTNAME

LIMIT

: , (Comma)

SECONDNAME :

COB_Tr
Ver. 1.0.0
04/12/199

25

Character Processing Verbs (Contd..)


UNSTRING Verb (Contd..)
COUNT IN Clause :
Used to Store the Number of Characters
Transferred to That Data-name.
Suppose WSNAME Contains
S U B E E R $ C H H E T R I

UNSTRING WSNAME

DELIMITED BY $
INTO FIRSTNAME

COUNT IN LENGTH-1
SECONDNAME

COUNT IN LENGTH-2.

COB_Tr
Ver. 1.0.0
04/12/199

26

Character Processing Verbs (Contd...)


UNSTRING Verb (Contd...)
Data-names will have Following Values.
FIRSTNAME

S U B E E R
6

LENGTH -1

SECONDNAME C H H E T R I
LENGTH -2

The Data-names Used with COUNT IN


Clause Should be Numeric.
COB_Tr
Ver. 1.0.0
04/12/199

27

Character Processing Verbs (Contd...)


UNSTRING Verb (Contd...)
TALLYING IN Clause :
Used to Count the Number of
destinations Acted Upon.
Suppose WSNAME Contains
V A S E E M b S H A I K H
UNSTRING WSNAME
DELIMITED BY SPACE
INTO FIRSTNAME

SECONDNAME
TALLYING IN
NO-OF-FIELDS.

COB_Tr
Ver. 1.0.0
04/12/199

28

Character Processing Verbs (Contd...)


UNSTRING Verb (Contd...)
As a Result of Above UNSTRING Statement
Data-names will have Following Values
FIRSTNAME
SECONDNAME

V A S E E M
S H A I K H
2

NO-OF-FIELDS

The Data-name NO-OF-FIELDS Should be


Numeric.

COB_Tr
Ver. 1.0.0
04/12/199

29

Character Processing Verbs (Contd..)


UNSTRING Verb (Contd..)
Suppose WSNAME Contains
V E N K A T - - M U R A L I , R A M UNSTRING WSNAME
DELIMITED BY ALL - OR ALL ,
INTO FIRSTNAME
DELIMITER IN FIRSTDELIMIT
COUNT
IN FIRSTCOUNT
SECONDNAME
DELIMITER IN SECONDDELIMIT
COUNT
IN SECONDCOUNT

COB_Tr
Ver. 1.0.0
04/12/199

30

Character Processing Verbs (Contd..)


UNSTRING Verb (Contd..)
SURNAME
DELIMITER IN SURDELIMIT
COUNT
IN SURCOUNT
TALLYING TOTTRANSFERED
ON OVERFLOW
PERFORM STRING-TOO-BIG-PARA.

COB_Tr
Ver. 1.0.0
04/12/199

31

Character Processing Verbs (Contd..)


UNSTRING Verb (Contd..)
V E N K A T

FIRSTNAME
FIRSTDELIMIT

FIRSTCOUNT

6
M U R A L I

SECONDNAME
SECONDDELIMT

COB_Tr
Ver. 1.0.0
04/12/199

32

Character Processing Verbs (Contd..)


UNSTRING Verb (Contd..)
SECONDCOUNT

SURNAME

R A M

SURDELIMIT

SURCOUNT
TOTTRANSFERED

COB_Tr
Ver. 1.0.0
04/12/199

33

Character Processing Verbs (Contd..)


INSPECT Verb
Used to Access and Manipulate Individual
Characters in a Data-name.
It is Possible to Replace Occurrences of a
Character or Sequence of Characters in
String.
INSPECT REPLACING ALL 0 BY +.
INSPECT ADDRESS
REPLACING ALL SINTEL BY
TEST01.

COB_Tr
Ver. 1.0.0
04/12/199

34

Character Processing Verbs (Contd..)


INSPECT Verb (Contd..)
It is Possible to Specify More than One
Conditions with INSPECT Verb.
INSPECT ADDRESS
REPLACING ALL SINTEL BY TEST01

ALL ANDERI BY ANDHERI.

COB_Tr
Ver. 1.0.0
04/12/199

35

Character Processing Verbs (Contd..)


INSPECT Verb (Contd..)
REPLACING FIRST and REPLACING
LEADING options.
With REPLACING FIRST Option The
Leftmost Occurrence of the
Character/Sequence or Characters is
Replaced.

COB_Tr
Ver. 1.0.0
04/12/199

36

Character Processing Verbs


(Contd..)
INSPECT Verb (Contd..)
Example
INSPECT TEST
REPLACING FIRST 0 BY +.
TEST
0 3 0 7

TEST
+ 3 0 7

Before INSPECT

COB_Tr
Ver. 1.0.0
04/12/199

37

After INSPECT

Character Processing Verbs (Contd..)


INSPECT Verb (Contd..)
With REPLACING LEADING Option
The Leftmost Contiguous Occurrences of
the Character / Sequence of Characters are
Replaced.

COB_Tr
Ver. 1.0.0
04/12/199

38

Character Processing Verbs (Contd..)


INSPECT Verb (Contd..)
Example :
INSPECT ITEM-CODE
REPLACING LEADING O BY 0.
ITEM-CODE

ITEM CODE

0 0 0 2 5

0 0 0 2 5

Before INSPECT After INSPECT

COB_Tr
Ver. 1.0.0
04/12/199

39

Character Processing Verbs (Contd..)


INSPECT Verb (Contd..)
BEFORE INITIAL and AFTER INITIAL
Option
Can be Used to Limit the Length of
Literal to be Searched.

COB_Tr
Ver. 1.0.0
04/12/199

40

Character Processing Verbs (Contd..)


INSPECT Verb (Contd..)
If WSNAME Contains
A P A R N AA
1) INSPECT WSNAME REPLACING
ALL A BY $ BEFORE INITIAL R.

Only Those A Before the First R in


WSNAME Will be Replaced by $.

WSNAME will have the Following Value


$ P $ R N AA

COB_Tr
Ver. 1.0.0
04/12/199

41

Character Processing Verbs (Contd..)


INSPECT Verb (Contd..)
2) INSPECT WSNAME
REPLACING ALL A BY *
AFTER INITIAL R.
Only Those A After the First R in
WSNAME Will be Replaced by *.
WSNAME will have the Following Value
A P A R N * *

COB_Tr
Ver. 1.0.0
04/12/199

42

Character Processing Verbs (Contd..)


INSPECT Verb (Contd..)
The TALLYING Clause
Used to Count Occurrences of a Character
or Sequence of Characters.
To Count Number of Times A Occurs in
the WSNAME:

COB_Tr
Ver. 1.0.0
04/12/199

43

Character Processing Verbs (Contd..)


INSPECT Verb (Contd..)
INSPECT WSNAME TALLYING NO-OF-A
FOR ALL A.
WSNAME Contains

A N A N T A

After Execution of Above Statement, NO-OF-A


will Contain 3
NO-OF-A Should be a Numeric Data-name.

COB_Tr
Ver. 1.0.0
04/12/199

44

Character Processing Verbs (Contd..)


INSPECT Verb (Contd..)
TALLYING and REPLACING can be Used
in a Single INSPECT Statement.
$ $ 9 5 $

TEST contains

INSPECT TEST TALLYING COUNT-A


FOR ALL $
REPLACING ALL $ BY *
Will Cause COUNT-A to Contain 3
& TEST will Change to * * 9 5 *

COB_Tr
Ver. 1.0.0
04/12/199

45

Character Processing Verbs (Contd..)


INSPECT Verb (Contd..)
To Convert All Lower Case Characters to
Uppercase Characters :
INSPECT NAME
REPLACING ALL a BY A
REPLACING ALL b BY B
REPLACING ALL z BY Z.

COB_Tr
Ver. 1.0.0
04/12/199

46

Character Processing Verbs (Contd..)


INSPECT Verb (Contd..)
The Same Effect can be Achieved More
Effectively Using CONVERTING Option.
INSPECT NAME
CONVERTING
abcdefghijklmnopqrstuvwxyz

TO
ABCDEFGHIJKLMNOPQRSTUVWXYZ.

COB_Tr
Ver. 1.0.0
04/12/199

47

Character Processing Verbs (Contd..)


INSPECT Verb (Contd..)
Example:
To Replace All Leading Blanks by
Leading Zeroes in a Field Called TEST,
INSPECT TEST REPLACING LEADING '
' BY '0'
TEST
TEST
0 0 5 4 9

b b 5 4 9
(Leading Blanks)
Before INSPECT
COB_Tr
Ver. 1.0.0
04/12/199

48

After INSPECT

Character Processing Verbs (Contd..)


INSPECT Verb (Contd..)
Example:
To Replace All Blanks by Zeros in a Field
Called TEST, Use
INSPECT TEST REPLACING ALL ' ' BY '0'.
TEST
TEST
0 9 0 7 0

b 9 b 7 b

Before INSPECT After INSPECT

COB_Tr
Ver. 1.0.0
04/12/199

49

Character Processing Verbs (Contd..)


INSPECT Verb (Contd..)
Example:
To Replace the First Zero by a +, Use
INSPECT TEST REPLACING FIRST '0' BY '+'.

TEST
0 5 7 9

TEST
+ 5 7 9

Before INSPECT

COB_Tr
Ver. 1.0.0
04/12/199

After INSPECT

50

Character Processing Verbs (Contd..)


INSPECT Verb (Contd..)
Example:
How ManyDollar Signs are in TEST?
INSPECT TEST TALLYING COUNTA FOR
ALL '$'.
If TEST Contains

$ $ 9 5 $

After INSPECT Statement COUNTA will


Contain 3
COUNTA Should be Numeric Data-name.
COB_Tr
Ver. 1.0.0
04/12/199

51

Character Processing Verbs (Contd..)


INSPECT Verb (Contd..)
How Many Zero Characters are There to the
Left of the Decimal and How Many Zeros are
There to the Right of the Decimal Point ?
INSPECT TEST TALLYING
COUNTA FOR ALL 0 BEFORE INITIAL .
COUNTB FOR ALL 0 AFTER ..

COB_Tr
Ver. 1.0.0
04/12/199

52

Character Processing Verbs (Contd..)


INSPECT Verb (Contd..)
If TEST Contains

9 0 9 . 0 0 5

Then After INSPECT Statement


COUNTA will Contain
1
& COUNTB will Contain 2
COUNTA and COUNTB Both Should be
Numeric Data-name.

COB_Tr
Ver. 1.0.0
04/12/199

53

Character Processing Verbs (Contd..)


INSPECT Verb (Contd..)
Example:
Count the Number of Dollar Signs in
TESTand Replace All Dollar Signs After
the First One by Asterisks.

INSPECT TEST
TALLYING COUNTA
FOR ALL $
REPLACING ALL $ BY *
AFTER INITIAL $.
If TEST Contains
$ $ 9 5 2 $
Then, After INSPECT Statement
COUNTA Will have 3

COB_Tr
& TEST Will Contain
Ver. 1.0.0
54
04/12/199

$ * 9 5 2 *

Character Processing Verbs (Contd..)


INSPECT Verb (Contd..)
Example:
Assuming That TEST Contains a Name
Left Justified in TEST, How Long is the
Name ? (Unused Positions are Blank.)
INSPECT TEST
TALLYING COUNTA FOR CHARACTERS
BEFORE INITIAL .

If TEST Contains
R A M E S H b b b
Then After INSPECT Statement
COUNTA Will Contain 6

COB_Tr
Ver. 1.0.0
04/12/199

55

Character Processing Verbs (Contd..)


INSPECT Verb (Contd..)
EXAMPLES (Contd..)
An Untrained Keypunch Operator Did Not
Depress the Numeric Key. All Numbers
have Been Mispunched. For Example,
Instead of a Zero There is a /, Instead of a
1 There is a U. Correct the Data.

COB_Tr
Ver. 1.0.0
04/12/199

56

Character Processing Verbs (Contd..)


INSPECT Verb (Contd..)
EXAMPLES (Contd..)
INSPECT TEST REPLACING ALL / BY 0
U BY 1
I BY 2
:
:
. BY 9.

COB_Tr
Ver. 1.0.0
04/12/199

57

Data Manipulation
Reference Modification
Similar to a substring in other languages

dataname(beginning position:length)

01 WS-DATE

PIC X(10) VALUE 1997/03/10.

*
*
MOVE WS-DATE(6:2) TO WS-MONTH.

COB_Tr
Ver. 1.0.0
04/12/199

58

Data Manipulation (Contd..)


INSPECT
Counting Characters

INITIALIZE COUNT-1
INSPECT FIELD-1
TALLYING COUNT-1 FOR CHARACTERS BEFORE INITIAL ..

INITIALIZE COUNT-1
COUNT-2
INSPECT FIELD-1
TALLYING COUNT-1 FOR ALL $
ALL ,
ALL .
COUNT-2 FOR CHARACTERS.

COB_Tr
Ver. 1.0.0
04/12/199

59

Data Manipulation (Contd..)


INSPECT
Replacing Characters

INSPECT FIELD-1
REPLACING ALL BY 0.
INSPECT FIELD-1
TALLYING COUNT-1 FOR LEADING
REPLACING LEADING BY *.
INSPECT FIELD-1
REPLACING FIRST * BY $.
INSPECT FIELD-1
REPLACING ALL X BY Y AFTER INITIAL R
B BY Z AFTER INITIAL R
C BY Q AFTER INTIIAL R.

COB_Tr
Ver. 1.0.0
04/12/199

60

Data Manipulation (Contd..)


INSPECT
Converting a Series of Characters

INSPECT FIELD-1
CONVERTING XBC TO YZQ AFTER INITIAL R.

COB_Tr
Ver. 1.0.0
04/12/199

61

Data Manipulation (Contd..)


INITIALIZE
INITIALIZE

FIELD-1 REPLACING - BY .

INITIALIZE

FIELD-1.

INITIALIZE

FIELD-1 REPLACING ALPHABETIC BY 0.

INITIALIZE

GROUP-LEVEL-FIELD.

COB_Tr
Ver. 1.0.0
04/12/199

62

Data Manipulation (Contd..)


SET
SET END-OF-FILE TO TRUE.
SET SEND-DATA-ONLY TO TRUE.
SET INDEX-1 UP BY 1.
SET INDEX-1 DOWN BY 1.
SET INDEX-2 TO INDEX-1.

COB_Tr
Ver. 1.0.0
04/12/199

63

Data Manipulation (Contd..)


STRING
STRING FIELD-1
FIELD-2
FIELD-3
DELIMITED BY SIZE
INTO RECEIVING-FIELD.
STRING FIELD-1
FIELD-2
FIELD-3
DELIMITED BY *
INTO RECEIVING-FIELD.

COB_Tr
Ver. 1.0.0
04/12/199

64

Data Manipulation (Contd..)


UNSTRING
UNSTRING SENDING-FIELD
DELIMITED BY *
INTO FIELD-1
FIELD-2.
UNSTRING SENDING-FIELD
DELIMITED BY * OR /
INTO FIELD-1
DELIMITER IN FIELD-2.

COB_Tr
Ver. 1.0.0
04/12/199

65

S-ar putea să vă placă și