Numero de Registos en un Ficheiro indexado
Código para saber numero de registos de um ficheiro indexado:
COBOL Código:
@OPTIONS NOALPHA
*****************************************************************
* Copyright (c) 2008 R.P.S.
* Created : Jun 2008
* Last Modified: Jun 2008
*****************************************************************
IDENTIFICATION DIVISION.
PROGRAM-ID. RECORDCOUNT.
AUTHOR. Rui Pinto.
*-----------------------------------------------------------------
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SPECIAL-NAMES.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT RCFILE ASSIGN TO FICHRC
ORGANIZATION SEQUENTIAL
FILE STATUS FS-RCFILE.
*-----------------------------------------------------------------
DATA DIVISION.
FILE SECTION.
FD RCFILE.
01 REGRCFILE.
03 RCBYTE PIC X(001).
*-----------------------------------------------------------------
WORKING-STORAGE SECTION.
01 FICHRC PIC X(256).
01 FS-RCFILE.
03 FS-RCFILE-A PIC X(001).
03 FS-RCFILE-B PIC X(001).
01 CONTADOR PIC 9(003).
01 XNRRECORDS PIC X(004).
01 NRRECORDS REDEFINES XNRRECORDS PIC S9(009) COMP-4.
LINKAGE SECTION.
01 RC-PATHFILE PIC X(256).
01 RC-NRRECORDS PIC S9(009) COMP-5.
01 RC-RESULT PIC X(001).
PROCEDURE DIVISION USING RC-PATHFILE RC-NRRECORDS RC-RESULT.
MAIN SECTION.
MAIN-00.
MOVE ZERO TO RC-NRRECORDS.
MOVE LOW-VALUES TO XNRRECORDS.
MOVE "N" TO RC-RESULT.
IF RC-PATHFILE = SPACE GO TO MAIN-99.
MAIN-05.
MOVE RC-PATHFILE TO FICHRC.
OPEN INPUT RCFILE.
IF FS-RCFILE-A NOT = "0" GO TO MAIN-90.
MAIN-10.
MOVE 0 TO CONTADOR.
MAIN-20.
READ RCFILE NEXT RECORD AT END GO TO MAIN-90.
IF CONTADOR NOT = 50 ADD 1 TO CONTADOR GO TO MAIN-20.
MOVE RCBYTE TO XNRRECORDS(1:1).
MOVE 2 TO CONTADOR.
MAIN-30.
READ RCFILE NEXT RECORD AT END GO TO MAIN-90.
MOVE RCBYTE TO XNRRECORDS(CONTADOR:1).
IF CONTADOR NOT = 4 ADD 1 TO CONTADOR GO TO MAIN-30.
MOVE NRRECORDS TO RC-NRRECORDS.
MOVE "Y" TO RC-RESULT.
MAIN-90.
CLOSE RCFILE.
MOVE "00" TO FS-RCFILE.
MOVE ALL SPACE TO FICHRC.
* CLOSE RCFILE.
MAIN-99.
END PROGRAM RECORDCOUNT.
Parâmetros a passar:
COBOL Código:
CALL "RECORDCOUNT" USING RC-PATHFILE RC-NRRECORDS RC-RESULT
Input :RC-PATHFILE
Output: RC-NRRECORDS
Output: RC-RESULT
Saludos,
Rui Pinto