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 | 1 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 |
what are the error codes in cobol, db2, cics, vsam , and jcl
Explain how will you differentiate between an internal and an external sort, the pros and cons, internal sort syntax etc
What is the point of the REPLACING option of a copy statement?
Explain how you can characterize tables in cobol?
How do you define a variable of COMP-1? COMP-2?
What are the functions like c or c++ in cobol?
how do you move only numeric data from A to B 01 A pic x(10) value 'a1b2c34d5e'. 01 B pic x(5).
what is sync clause?
What is the default value of DISP parameter?
hai friends ,i have HSBc exam on this sunday,my platform is Mainframe,i have 1 year exp,pls any one send me placement papers of Hsbc and technical questions on mainframe
6 Answers Citi Bank, CitiGroup, HSBC, iNautix, Wipro,
I have a source program compiled with Cobol-2. The output file has a record length of 100 defined in the program but a record of 60 bytes getting written into it. i.e. The rest of 40 bytes I am not Writing anything. But it by default puts some values into the last 40 bytes. However it does not impact anything. But when Compiled the module with Enterprise Cobol the last 40 bytes were spaces as fillers. Can anyone explain?
What COBOL construct is the COBOL II EVALUATE meant to replace?