How to read the last 100 records from a COBOL file. The file
contains N number of records.
Answers were Sorted based on User's Feedback
Answer / santy
let consider,
First declear 2 count variables A,B.
first count all the records i.e. N and put it into A
varialbe.
compute statement B=A-100, i.e. B=N-100
now again use the read-para untill condition B=A
and in read para incrased the value of B=B+1 after each
read.
| Is This Answer Correct ? | 19 Yes | 3 No |
Answer / mobi and remya
PROCEDURE DIVISION.
PARA.
OPEN INPUT STUDFILE.
PERFORM PARA1 UNTIL EOF = 1.
DISPLAY 'TOTAL NO:OF RECORDS ' A.
COMPUTE B = A - 100.
MOVE 0 TO EOF.
CLOSE STUDFILE.
OPEN INPUT STUDFILE.
PERFORM PARA2 UNTIL EOF = 1.
CLOSE STUDFILE.
STOP RUN.
PARA1.
READ STUDFILE AT END MOVE 1 TO EOF.
COMPUTE A = A + 1.
PARA2.
READ STUDFILE AT END MOVE 1 TO EOF.
COMPUTE C = C + 1.
IF C >= B AND EOF NOT = 1
DISPLAY STUD-REC.
| Is This Answer Correct ? | 16 Yes | 0 No |
Answer / bibhuti swain
PROCEDURE DIVISION.
PARA.
OPEN INPUT STUDFILE.
PERFORM PARA1 UNTIL EOF = 1.
DISPLAY 'TOTAL NO:OF RECORDS ' A.
COMPUTE B = A - 100.
MOVE 0 TO EOF.
CLOSE STUDFILE.
OPEN INPUT STUDFILE.
PERFORM PARA2 UNTIL EOF = 1.
CLOSE STUDFILE.
STOP RUN.
PARA1.
READ STUDFILE AT END MOVE 1 TO EOF.
COMPUTE A = A + 1.
PARA2.
READ STUDFILE AT END MOVE 1 TO EOF.
COMPUTE C = C + 1.
IF C >= B AND EOF NOT = 1
DISPLAY STUD-REC.
If anybody doesn't understand this logic i can explain..
In PARA2 the file is read from the beginning and the moment
the value of C reaches the value of B i.e value of C = B
and then it will satisfy the condition IF C >= B and from
there it will start displaying the records till end.
| Is This Answer Correct ? | 14 Yes | 1 No |
Answer / m.rajasekaran
Hi Mobi and Remya,
logic is correct
But in PARA2 u have coded that COMPUTE C = C + 1, How it
will work?
You should have moved B to C after calculating the value
of B in PARA1.Then only this code will work.
Let me know if any mistake in my answer.
| Is This Answer Correct ? | 6 Yes | 2 No |
Answer / giri12
Hi Santy in ur answer u mentioned that..
read-para untill condition B=A
Can you please explain it. Coz B=900 and A=1000(assume)
then how will be 900=1000?
| Is This Answer Correct ? | 3 Yes | 1 No |
Answer / venkat
in my view if it is a ksds cluster file use organization as
dynamic and accept the related value start reading the file
and write it..i think this will display the last hundred
records..
correct me..
venkat
| Is This Answer Correct ? | 2 Yes | 0 No |
Answer / guest
First move HIGH-VALUES to the key field and then read the
file.It will read the last record then put READ PREV in
loop 100 times to get the last 100 records.
| Is This Answer Correct ? | 4 Yes | 4 No |
Answer / heeraj r
Pls post the correct question. I am not sure what you mean
by COBOL file, is it PS or VSAM or Tape etc etc? If you
want last 100 records of a file use below SORT JCL, and if
required that output file can be read in your COBOL.
//S1 EXEC
PGM=ICETOOL
//TOOLMSG DD
SYSOUT=*
//DFSMSG DD
SYSOUT=*
//IN DD DSN=... input
file
//OUT DD DSN=... output file
//TOOLIN DD
*
SUBSET FROM(IN) TO(OUT) KEEP INPUT LAST(100)
/*
| Is This Answer Correct ? | 1 Yes | 1 No |
Answer / kingmanish
question is ambiguous.
Could you please explain what do u mean by cobol file?
PLease specify what type of file??? Flat file? VSAM ??
| Is This Answer Correct ? | 0 Yes | 0 No |
tell me about examine inspect and evaluate ?
What is the difference between comp and comp-3 usage? Explain other COBOL usage?s.
given the following piece of code: CALL SUB-PGM USING A, B, C. CALL SUB-PGM USING A, C, C. (a) Both CALL statements will always produce same result. (d) Both CALL statements may produce different result. (c) Compile-time error because SUB-PGM is a dataname. (d) Compile-time error because A, B, C are used twice.
HI THIS IS ANIL. HOW TO PASS A RECORDS OF A FILE(PS OR PDS) TO AN ARRAY?
Why we are using comp and comp-3 in real time projects?
what is sync clause?
What is the difference between SEARCH and SEARCH ALL? What is more efficient?
I have one column say 'X' defined as VARCHAR Can anyone tell me What are the different ways to update this column thru COBOL-DB2 program?
How can i write a comp-3 variable into a sequential file should i declara the field in the file description as comp- 3?
What is the difference between a DYNAMIC and STATIC call in COBOL?
what modification we need to do in jcl if we use sort in cobol? I mean whether we need to include tempary file used for sorting in assign statement?
if we display var1 then what will b displayed in below condition. 77 var1 pic s9(2) value -10. 77 var1 pic s9(2) value -11. " " " -12. " " " -13. -14 ... ... -19.