STRING
HANDLING
Ø String is a
collection of one or more characters
Ø Using String Handling
we can combine one or more strings into one string
Ø We can divide one
string into no of strings
Ø We can replace the
existing characters with new characters
Ø We can count the
occurrences of the characters in the given string
Ø We can convert the
data into new data
Ø In string we have
different functions as follows. They are………
1.
String
2.
Unstring
3.
Inspect
4.
Tallying
5.
Replacing
6.
Converting
1.
STRING
Using
string we can combine one or more strings into one string
SYNTAX
STRING ID1 DELIMITED BY
‘COMMA/SPACE/SIZE’,
ID2 DELIMITED BY ‘COMMA/SPACE/SIZE’,
ID3 DELIMITED BY ‘COMMA/SPACE/SIZE’,
………………..
………………..
………………..
………………..
IDn DELIMITED BY ‘COMMA/SPACE/SIZE’, INTO
IDENTIFIER
END-STRING.
EX
ID DIVISION.
PROGRAM-ID. PGM40.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 A PIC A(10) VALUE 'HELLO HAI'.
01 B PIC X(13) VALUE 'WELCOME#BYE'.
01 C PIC A(20) VALUE SPACES.
PROCEDURE DIVISION.
STRING A
DELIMITED BY ' ',
B
DELIMITED BY '#' INTO C.
DISPLAY C.
STOP
RUN.
2.
UNSTRING
Using UNSTRING we can divide one
string into no of strings as follows
SYNTAX
UNSTRING ID1 INTO ID2,ID3,ID4………IDn
END-STRING.
EX
ID DIVISION.
PROGRAM-ID. PGM41.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 A PIC A(30) VALUE 'HELLO HAI WELCOME TO STRING'.
01 B PIC A(5).
01 C PIC A(3).
01 D PIC A(10).
01 E PIC A(6).
PROCEDURE DIVISION.
UNSTRING A INTO
B,C,D,E.
DISPLAY A.
DISPLAY B.
DISPLAY C.
DISPLAY D.
DISPLAY E.
STOP RUN.
INSPECT,
TALLYING
Ø Using ‘INSPECT’ we
can examine the string
Ø Using ‘TALLYING’ we
can update the count and also used for counting the occurrences
Ø Using ‘INSPECT’ we
can count the occurrence of a character in the given string as follows
EX
ID DIVISION.
PROGRAM-ID. PGM42.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 A PIC A(30) VALUE 'HELLO HAI WELCOME TO INSEPECT'.
01 B PIC 9(4).
PROCEDURE DIVISION.
INSPECT A TALLYING B FOR ALL 'E'.
DISPLAY A.
DISPLAY 'COUNT
IS::' B.
STOP RUN.
REPLACING
Ø Using REPLACING we
can change character by character or word by word
Ø While REPLACING, the
old and new characters length must be same
Ø Using REPLACE we can
also NULLIFY the data
EX
ID DIVISION.
PROGRAM-ID. PGM43.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 A PIC A(30) VALUE 'HELLO HI HAI HI'.
PROCEDURE DIVISION.
INSPECT A
REPLACING ALL 'H' BY 'A'.
DISPLAY A.
INSPECT A
REPLACING ALL 'HI' BY 'H!'
DISPLAY A.
STOP RUN.
CONVERTING
Using CONVERTING we can convert
character by character and also we can convert multiple characters with new
characters at a time
EX
ID DIVISION.
PROGRAM-ID. PGM44.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 A PIC A(20) VALUE 'HELLO HI HAI HI'.
PROCEDURE DIVISION.
INSPECT A
CONVERTING 'H' TO 'A'.
DISPLAY A.
INSPECT A
CONVERTING 'HI' TO 'X!'.
DISPLAY A.
INSPECT A CONVERTING
'HIL' TO '---'.
DISPLAY A.
STOP RUN.
REFERENCE
MODIFICATION
Ø In String Handling by
using REFERENCE MODIFICATION we can retrieve required string from the given
string
Ø Using REFERENCE
MODIFICATION random selection of data is possible
SYNTAX
DATANAME(LOCATIONINPUT:LENGTH)
EX
ID DIVISION.
PROGRAM-ID. PGM45.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 A PIC A(30) VALUE 'HELLO HOW ARE YOU'.
01 B PIC A(3).
01 C PIC A(3).
01 D PIC A(5).
01 E PIC A(3).
PROCEDURE DIVISION.
MOVE A(11:3) TO
B.
MOVE A(7:3) TO
C.
MOVE A(1:5) TO
D.
MOVE A(15:3) TO
E.
DISPLAY A.
DISPLAY B.
DISPLAY C.
DISPLAY D.
DISPLAY E.
STOP RUN.
TABLE
HANDLING
Ø TABLE is a linear
data structure
Ø TABLE stores the
homogenous data items
Ø Using TABLE we can
write or invoke collection of linear data structures (data items) with one name
called TABLE
Ø TABLE is a collection
of ROWS and COLUMNS
Ø Using TABLE HANDLING
we can repeat one data item for ‘n’ no of times
Ø In TABLE we can
repeat the data names for ‘n’ no of times using OCCURS CLAUSE
Ø By using OCCURS we
can repeat the structure for ‘n’ times and it allocates the memory for the data
names
01 GRP
03 ENO 9(4). 20*2 = 40 Bytes
03 ENAME A(16).
RULES
IN OCCURS CLAUSE
Ø We cant use OCCURS
CLAUSE for group item (01)
Ø Only positive
occurrences are allowed
Ø OCCURS is a
WORKING-STORAGE SECTION item
Ø We also cant write
OCCURS for ‘66’,’77’ &’88’ level no#
Ø By using SUBSCRIPT
and INDEX only we can change the value of an array element
Ø SUBSCRIPT means
occurrences whereas INDEX means displacement
Ø The value of INDEX
will be set by using a SET statement
DIFFERENCES
BETWEEN SUBSCRIPT AND INDEX
Ø In general COBOL we
can write max ‘7’ dimensions
DIMENSION = No of Occurrences
Ø We can also write
multiple dimensions
Ø The declaration of
array elements and the values allocation is as follows….
EX1.
ONE DIMENSIONAL ARRAY
ID DIVISION.
PROGRAM-ID. PGM1.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 EMP-TAB.
02 EMP OCCURS 3
TIMES.
03 ENO PIC
9(4).
03 ENAME
PIC A(15).
77 I PIC 9(1).
PROCEDURE DIVISION.
PERFORM VARYING
I FROM 1 BY 1 UNTIL I > 3
ACCEPT
ENO(I)
ACCEPT
ENAME(I)
DISPLAY
ENO(I)
DISPLAY
ENAME(I)
END-PERFORM.
DISPLAY
EMP-TAB.
STOP RUN.
EX1.
TWO DIMENSIONAL ARRAY
ID DIVISION.
PROGRAM-ID. PGM2.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 CLASS-TAB.
02 SEC-TAB OCCURS
2 TIMES.
03 SEC PIC
X(5)
03 NAME-TAB
OCCURS 5 TIMES.
04 NAME
PIC A(20).
77 I PIC 9(1).
77 J PIC 9(1).
PROCEDURE DIVISION.
PERFORM VARYING
I FROM 1 BY 1 UNTIL I>2
ACCEPT
SEC(I)
DISPLAY
SEC(I)
PERFORM VARYING
J FROM 1 BY 1 UNTIL J>5
ACCEPT
NAME(I,J)
DISPLAY
NAME(I,J)
END-PERFORM.
END-PERFORM.
DISPLAY
CLASS-TAB.
STOP
RUN.
EX1.
TWO DIMENSIONAL ARRAY
ID DIVISION.
PROGRAM-ID. PGM3.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 CLASS-TAB.
02 SECTION-TAB
OCCURS 2 TIMES.
03 SEC PIC
X(5).
03
NAME-TAB OCCURS 3 TIMES.
04
NAME-TAB PIC A(20).
04
MARK-TAB OCCURS 6 TIMES.
05 MARK PIC 9(3).
77 I PIC 9(1).
77 J PIC 9(1).
77 K PIC 9(1).
PROCEDURE DIVISION.
PERFORM VARYING I
FROM 1 BY 1 UNTIL I > 2
ACCEPT
SEC(I)
00160004
DISPLAY SEC(I)
00170004
PERFORM VARYING J
FROM 1 BY 1 UNTIL J > 5
ACCEPT
SEC(I,J)
DISPLAY
SEC(I,J)
PERFORM VARYING K
FROM 1 BY 1 UNTIL K > 6
ACCEPT
SEC(I,J,K)
DISPLAY
SEC(I,J,K)
END-PERFORM.
END-PERFORM.
END-PERFORM.
DISPLAY
CLASS-TAB.
STOP RUN.
SEARCH
AND SEARCHALL
Ø We can search any
element of an array by using SEARCH and SEARCHALL
Ø SEARCH is a
sequential search whereas SEARCHALL is a binary search
Ø SEARCH is preferable
for small tables whereas SEARCHALL is preferable for large tables
Ø In SEARCH and
SEARCHALL, INDEX is required
Ø In SEARCH any logical
comparison is possible
Ø SEARCHALL will work
faster than SEARCH because of their order or sequence
SYNTAX1.
SEARCH
SEARCH IDENTIFIER AT END DISPLAY ‘IMPERATIVE
STATEMENT’
WHEN DATANAME = SEARCH ELEMENT
DISPLAY ‘IMPERATIVE STATEMENT’
END-SEARCH
SYNTAX2.
SEARCHALL
SEARCHALL
IDENTIFIER AT END DISPLAY ‘IMPERATIVE STATEMENT’
WHEN DATANAME = SEARCH ELEMENT
DISPLAY ‘IMPERATIVE STATEMENT’
END-SEARCHALL
EX1.
SEARCH
ID DIVISION.
PROGRAM-ID. PGM1.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 EMP-TAB.
02 EMP OCCURS 3
TIMES INDEXED BY I.
03 ENO PIC
9(4).
03 ENAME
PIC A(15).
77 SNUM PIC 9(4).
PROCEDURE DIVISION.
PERFORM
PARA-1 3 TIMES.
ACCEPT
SNUM.
PERFORM
SER-PARA.
STOP RUN.
PARA-1
ACCEPT
ENO(I).
ACCEPT
ENAME(I).
SER-PARA
SEARCH EMP
AT END MOVE “ELEMENT NOT FOUND”
WHEN ENO(I)=SNUM
DISPLAY ENO(I)
DISPLAY ENAME(I)
END-SEARCH.
In SEARCH
we can keep the input data in any order
EX2.
SEARCHALL
ID DIVISION.
PROGRAM-ID. PGM1.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 EMP-TAB.
02 EMP OCCURS 3
TIMES INDEXED BY I ASCENDING KEY ENO.
03 ENO PIC 9(4).
03 ENAME
PIC A(15).
77 SNUM PIC 9(4).
PROCEDURE DIVISION.
PERFORM
PARA-1 3 TIMES.
ACCEPT
SNUM.
PERFORM
SER-PARA.
STOP
RUN.
PARA-1
ACCEPT
ENO(I).
ACCEPT
ENAME(I).
SER-PARA
SEARCHALL
EMP AT END MOVE “ELEMENT NOT FOUND”
WHEN ENO(I)=SNUM
DISPLAY ENO(I)
DISPLAY ENAME(I)
END-SEARCH.
FILE
HANDLING
Ø FILE is a collection
of records
Ø In COBOL we use both
VSAM and NON-VSAM files for storing data
Ø DATA FILE is a
collection of physical and logical files
Ø Physical file is
identified by system whereas the Logical file will be identified by the program
Ø In COBOL we use
physical sequential (PS) and VSAM CLUSTERS for loading data
Ø In COBOL to use a
file we need to follow the structure as follows
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT <LOGICAL FILE> ASSIGN TO <DD
NAME>.
ORGANIZATION <SEQUENTIAL> OR
<INDEXED> OR <RELATIVE>.
ACCESS MODE <SEQUENTIAL> OR
<RANDOM> OR <DYNAMIC>.
RECORD KEY <KEY NAME>.
RELATIVE KEY <KEY NAME>.
ALTERNATE RECORD KEY <KEY NAME>.
FILE STATUS <FS NAME>.
DESCRIPTION
Ø Using SELECT we can
assign a logical file for the DD NAME
Ø LOGICAL FILE is a
user defined name
Ø SELECT will access
the physical file through DD NAME
1.
ORGANIZATION
Specifies the
behavior of and structure of the file depends on file type we can assign
organization for the file
1.
SEQUENTIAL is used
for PS and ESDS also
2.
INDEXED is used for KSDS
3.
RELATIVE is used for RRDS
NOTE
ORGANIZATION, SEQUENTIAL is default
2.
ACCESS MODE
Specifies how the file is going
to be accessed
a.
SEQUENTIAL
Data can be retrieved in entry
sequence
b.
RANDOM
we can retrieve the data randomly from the specific location in the file
we can retrieve the data randomly from the specific location in the file
c.
DYNAMIC
It is
combination of both SEQUENTIAL and RANDOM
Ø By using START and READ
NEXT we can access the records from the file
Ø DYNAMIC is mainly
used for KSDS cluster
3.
RECORD KEY
Specifies
primary key of KSDS cluster
4.
RELATIVE KEY
Is used for RRDS
5.
ALTERNATE RECORD KEY
Using
ALTERNATE INDEX also we can retrieve data from clusters (KSDS & ESDS)
6. FILE
STATUS
Ø It is a two digit no
mainly used to know the status of a file
Ø It is not mandatory
for every file
NOTE
Ø ‘ACCESS MODE’
SEQUENTIAL is default
Ø File is an 80 byte
record structure
Ø While declaring file
we need to use FILLER to initialize the unused space with ‘SPACES’
Ø FILLER is also used
for flexible insertion and updation of data
USAGE
OF FILES
Ø Declare a logical
file in COBOL
Ø Declare file
attributes (usage of 80 bytes)
Ø Opening the file
Ø Performing required
operation
Ø Closing the file
FILE
OPEN MODES
We can
open file according to the user requirement
In file
we have 4 modes. They are
1.
Input
2.
Output
3.
Extend
4.
Input-output
1.
INPUT
Ø Used for the existing
files
Ø Only READ operation
is allowed
2.
OUTPUT
Ø Used to insert
records
Ø If a SEQUENTIAL file
already holding record is used then the existing records will be deleted 1st
and then the new records are inserted into the file
Ø It will not happen in
case of INDEXED or RELATIVE file
3.
EXTEND
Ø Used to append
records in a SEQUENTIAL file
Ø The records are
inserted at the end
Ø If the ACCESS MODE is
RANDOM or DYNAMIC then EXTEND mode cannot be used
4.
INPUT-OUTPUT
Ø Used to read and
rewrite the records of a file
On files
we can perform many operations like.……..
1.
OPEN
2.
READ
3.
WRITE
4.
REWRITE
5.
DELETE
6.
START
7.
CLOSE
1. OPEN
Ø 1st file
operation that must be performed
Ø If open is successful
then only further operations are possible on a file
Ø Only after opening a
file, the variables in the file structure are available for processing
Ø FILE STATUS is
updated after each and every file operation
SYNTAX
OPEN
“MODE” FILENAME
2. READ
Ø Used to fetch the
records from a file
Ø To perform READ
operation the file must be opened in INPUT or INPUT-OUTPUT mode
SYNTAX
READ FILENAME NEXT RECORD INTO
WS-FILE-STRUCTURE
AT END DISPLAY ‘END OF FILE’
NOT END DISPLAY ‘RECORD DETAILS::’
WS-FILE-STRUCTURE
END-READ.
3.
WRITE
Ø Used to insert the
records into the file
Ø Once the record is
written it is no longer available in record buffer
Ø Before inserting the
records in the file, move values to the record buffer and then perform WRITE
verb
Ø Open mode should be
EXTEND or OUTPUT, if ACCESS MODE is RANDOM or DYNAMIC then Open mode should be
OUTPUT or INPUT-OUTPUT
SYNTAX
WRITE RECORD BUFFER (FROM
WS-FILE-STRUCTURE)
INVALID
KEY DISPLAY ‘INVALID KEY’
NOT
INVALID KEY DISPLAY ‘RECORD INSERTED’
END-WRITE.
4.
REWRITE
Ø Open mode should be
INPUT-OUTPUT
Ø Used to update
records
Ø Last record is
overrided
SYNTAX
REWRITE RECORD BUFFER (FROM
WS-FILE-STRUCTURE)
INVALID
KEY DISPLAY ‘INVALID KEY’
NOT
INVALID KEY DISPLAY ‘RECORD INSERTED’
END-REWRITE.
5.
DELETE
Ø Open mode should be
INPUT-OUTPUT
Ø If the ACCESS MODE is
SEQUENTIAL, then the last record read by READ statement is deleted. If the
ACCESS MODE is RANDOM then specify the RECORD KEY and then perform delete
operation
SYNTAX
DELETE FILENAME RECORD
INVALID
KEY DISPLAY ‘INVALID KEY’
NOT
INVALID KEY DISPLAY ‘RECORD DELETED’
END-DELETE.
6.
START
Ø Open mode should be
INPUT-OUTPUT
Ø START is performed on
files those ACCESS MODES are SEQUENTIAL and RANDOM
Ø Used to place the
file pointer on specific record
SYNTAX
START FILENAME KEY IS (=, <,
>, !=, >=, <=) REC-KEY
INVALID
KEY DISPLAY ‘INVALID KEY’
NOT
INVALID KEY DISPLAY ‘RECORD INSERTED’
END-START.
7.
CLOSE
Used to close
the opened file
SYNTAX
CLOSE FILENAME
EX1:
WRITING DATA INTO FILE
ID DIVISION.
PROGRAM-ID. PGM4.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT FILE1
ASSIGN TO DD1
ORGANIZATION
SEQUENTIAL
ACCESS MODE
SEQUENTIAL
FILE STATUS
FS1.
DATA DIVISION.
FILE SECTION.
FD FILE1.
01 FILE-REC.
49 ENO PIC
9(4).
49 ENAME PIC
A(16).
49 ESAL PIC
9(5).
49 FILLER PIC
X(55).
WORKING-STORAGE SECTION.
77 FS1 PIC 9(2).
PROCEDURE DIVISION.
PERFORM
OPEN-PARA.
PERFORM
WRITE-PARA.
PERFORM
CLOSE-PARA.
STOP RUN.
OPEN-PARA.
OPEN OUTPUT
FILE1.
DISPLAY FS1.
WRITE-PARA.
ACCEPT ENO.
ACCEPT
ENAME.
ACCEPT ESAL.
WRITE
FILE-REC.
DISPLAY FS1.
CLOSE-PARA.
CLOSE FILE1.
DISPLAY FS1.
FD – specifies the File
Descriptions used to declare file attributes
SD(Sort Descriptor) – it is used for doing SORT and MERGE operations
on files
EX2:
WRITING DATA INTO FILE USING FILLER
ID DIVISION.
PROGRAM-ID. PGM4.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT FILE1
ASSIGN TO DD1
ORGANIZATION
SEQUENTIAL
ACCESS MODE
SEQUENTIAL
FILE STATUS FS1.
DATA DIVISION.
FILE SECTION.
FD FILE1.
01 FILE-REC.
49 ENO PIC 9(4).
49 FILLER
X(2).
49 ENAME PIC
A(16).
49 FILLER
X(3).
49 ESAL PIC
9(5).
49 FILLER PIC
X(50).
WORKING-STORAGE SECTION.
77 FS1 PIC 9(2).
PROCEDURE DIVISION.
PERFORM
OPEN-PARA.
PERFORM
WRITE-PARA.
PERFORM
CLOSE-PARA.
STOP RUN.
OPEN-PARA.
OPEN OUTPUT
FILE1.
DISPLAY FS1.
WRITE-PARA.
ACCEPT ENO.
ACCEPT
ENAME.
ACCEPT ESAL.
WRITE
FILE-REC.
DISPLAY FS1.
CLOSE-PARA.
CLOSE FILE1.
DISPLAY FS1.
Using FILE
STATUS we can know the file status of the file. If operation is successful it
gives ‘00’ otherwise more than ‘00’
EX3:
WRITING NO OF RECORDS INTO FILE
ID DIVISION.
PROGRAM-ID. PGM4.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT FILE1
ASSIGN TO DD1
ORGANIZATION
SEQUENTIAL
ACCESS MODE
SEQUENTIAL
FILE STATUS
FS1.
DATA DIVISION.
FILE SECTION.
FD FILE1.
01 FILE-REC.
49 ENO PIC
9(4).
49 ENAME PIC
A(16).
49 ESAL PIC
9(5).
49 FILLER PIC
X(55).
WORKING-STORAGE SECTION.
77 FS1 PIC 9(2).
PROCEDURE DIVISION.
PERFORM
OPEN-PARA.
PERFORM
WRITE-PARA 4 TIMES.
PERFORM
CLOSE-PARA.
STOP RUN.
OPEN-PARA.
OPEN OUTPUT
FILE1.
DISPLAY FS1.
WRITE-PARA.
ACCEPT ENO.
ACCEPT
ENAME.
ACCEPT ESAL.
WRITE
FILE-REC.
DISPLAY FS1.
CLOSE-PARA.
CLOSE FILE1.
DISPLAY FS1.
EX4.
READING DATA FROM THE FILE
ID DIVISION.
PROGRAM-ID. PGM4.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT FILE4
ASSIGN TO DD1
ORGANIZATION
SEQUENTIAL
ACCESS MODE
SEQUENTIAL
FILE STATUS
FS1.
DATA DIVISION.
FILE SECTION.
FD FILE4.
01 FILE-REC.
49 ENO PIC
9(4).
49 ENAME PIC
A(16).
49 ESAL PIC
9(5).
49 FILLER PIC
X(55).
WORKING-STORAGE SECTION.
77 FS1 PIC 9(2).
PROCEDURE DIVISION.
PERFORM
OPEN-PARA.
PERFORM
READ-PARA.
PERFORM
CLOSE-PARA.
STOP RUN.
OPEN-PARA.
OPEN OUTPUT
FILE1.
DISPLAY FS1.
READ-PARA.
READ FILE4.
DISPLAY FS1.
CLOSE-PARA.
CLOSE FILE1.
DISPLAY FS1.
CASE1.
If suppose file having 100
records we can fetch 100 at a time as
PERFORM READ-PARA 100 TIMES
CASE2.
If suppose file having many
records we can fetch all at a time by using following example
ID DIVISION.
PROGRAM-ID. PGM4.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT FILE5
ASSIGN TO DD1
ORGANIZATION
SEQUENTIAL
ACCESS MODE
SEQUENTIAL
FILE STATUS
FS1.
SELECT FILE6
ASSIGN TO DD2
ORGANIZATION
SEQUENTIAL
ACCESS MODE
SEQUENTIAL
FILE STATUS
FS2.
DATA DIVISION.
FILE SECTION.
FD FILE5.
01 FILE-REC.
49 ENO PIC
9(4).
49 ENAME PIC
A(16).
49 ESAL PIC
9(5).
49 FILLER PIC
X(55).
FD FILE6.
01 FILE-REC1.
49 ENO PIC
9(4).
49 ENAME PIC
A(16).
49 ESAL PIC
9(5).
49 FILLER PIC
X(55).
WORKING-STORAGE SECTION.
77 FS1 PIC 9(2).
77 FS2 PIC 9(2).
77 VAL PIC X(1).
PROCEDURE DIVISION.
PERFORM
OPEN-PARA.
PERFORM READ-PARA
UNTIL VAL=’N’.
PERFORM
CLOSE-PARA.
STOP RUN.
OPEN-PARA.
OPEN INPUT
FILE5.
DISPLAY FS1.
OPEN INPUT
FILE6.
DISPLAY FS2.
READ-PARA.
NOT AT END
PERFORM WRITE-PARA.
DISPLAY FS1.
WRITE-PARA.
MOVE FILE-REC TO
FILE-REC1.
WRITE FILE-REC1.
DISPLAY FS2.
CLOSE-PARA.
CLOSE FILE5.
DISPLAY FS1.
CLOSE FILE6.
DISPLAY FS2.
No comments:
Post a Comment