COBOL (Common Business Oriented Language)

Informática. Lenguajes. Ficheros secuenciales. Registros

16 downloads 208 Views 30KB Size

Story Transcript

IDENTIFICATION DIVISION. PROGRAN−ID. Nombre de Programa. ENVIRONMENT DIVISION. [ CONFIGURATION SECTION. SPECIAL−NAMES. DECIMAL−POINT IS COMMA.] [INPUT−OUTPUT SECTION. FILE−CONTROL. * Para ficheros secuenciales SELECT Fichero ASSIGN TO DISK. * Para ficheros Indexados SELECT Fichero ASSIGN TO DISK ORGANIZATION INDEXED RECORD KEY IS CLAVE [ACCESS IS RANDOM / DYNAMIC FILE STATUS IS ERR.] * Para Impresora SELECT IMPRES ASSIGN TO PRINTER.] DATA DIVISION. [FILE SECTION. * Para cada fichero en Disco FD Fichero LABEL RECORD STANDARD VALUE OF FILE−ID ðNombre de fichero.DATð. 01 Nombre de registro. 02 Nombre de Campo PIC ....

1

02 Tabla OCCURS veces. 03 Campos repetidos PIC .... . . * Para la Impresora FD IMPRES LABEL RECORD OMITTED LINAGE 60 FOOTING 60 TOP 3 BOTTOM 3. 01 RIMPRES PIC X(80).] WORKING−STORAGE SECTION. 01 CAMPOS−DE−TRABAJO VALUE ð0". 02 Nombre de campo PIC ... 02 Tabmes. 03 FILLER PIC X(30) VALUE... 02 Tab REDEFINES TABMES. . 03 MES OCCURS 12 PIC X(10) 01 CABECERA1. . . Se definen las cabeceras si las hay

PROCEDURE DIVISION.

MOVE Nombre de Campo TO Nombre de campo [Nombre de campo ....] Literal

2

ADD Nombre de Campo TO Nombre de campo Literal GIVING

SUBTRACT Nombre de Campo FROM Nombre de campo Literal Literal Numerico GIVING Nombre de campo

3

MULTIPLY Nombre de Campo FROM Nombre de campo Literal Literal Numerico GIVING Nombre de campo

DIVIDE Nombre de Campo FROM Nombre de campo Literal Literal Numarico GIVING Nombre de campo

Nombre de Campo COMPUTE Nombre de Campo = Literal Numerico Expresión Aritmética

4

STOP RUN Literal

DATE ACCEPT Nombre de Campo FROM DAY TIME ACCEPT Nombre de Campo

LENGTH−CHECK AUTO−SKIP ACCEPT (Fila, Columna) Nombre de Campo WITH PROMPT BEEP UPDATE

5

Literal DISPLAY (Fila, Columna) Nombre de Campo ERASE

PERFORM Nombre de Parrafo THRU Nombre de Parrafo Nombre de seccion

PERFORM Rango Entero TIMES Nombre de campo PERFORM Rango VARYING Nombre de Indice FROM Cantidad1 BY Cantidad2 UNTIL Condicion. IF Condicion Declaracion/es ELSE Declaracion/es.

INPUT 6

OPEN OUTPUT Nombre de Fichero ...... ....... I−O EXTEND Lectura Secuencial READ Fichero AT END Declaracion Imperativa. Lectura Secuencial, si ACCESS IS DYNAMIC READ Fichero NEXT AT END Declaracion Imperativa. Lectura al azar (solo ficheros Indexados) READ Fichero INVALID KEY Declaracion Imperativa.

GREATER START Fichero KEY IS [NOT] LESS CLAVE EQUAL DELETE Fichero (Solo Indexados)

WRITE Rimpres FROM Nombre de Grupo [AFTER/BEFORE] [AT EOP Declaración Imperativa.] WRITE Registro de Fichero [ FROM Nombre de Grupo] [INVALID KEY Declaracion Imperativa.] REWRITE Nombre de Registro CLOSE Fichero ..... ...... STRING Emisor DELIMITED BY Literal INTO Receptor WITH POINTER Contador 7

SORT Fichero Sort ASCENDING/DESCENDING Nombre de Campo del Fsort INPUT PROCEDURE Nombre de Seccion(ENTRADA) OUTPUT PROCEDURE Nombre de Seccion(SALIDA). ANEXO DE FICHEROS 1.− FICHEROS. a) Definición en la SELECT 1.1.− Para ficheros secuenciales. SELECT Fichero ASSIGN TO DISK. 1.2.− Para ficheros Indexados. SELECT Fichero ASSIGN TO DISK ORGANIZATION INDEXED RECORD KEY IS CLAVE. [ACCESS IS IS RANDOM/DYNAMIC] b) Definiciones en la DATA DIVISION. Para ambos ficheros es exactamente igual. c) Creacion de un fichero. Si secuencial se pueden añadir registros al final se se abre de EXTEND. No pueden darse altas entre 2 registros. Las altas se graban con WRITE. Si indexado se abre el fichero de I−O con acceso RANDOM, se pueden dar altas al final y entre registros. Se graban con WRITE. NOTA: NO SE ABRIR UN FICHERO QUE YA EXISTA DE OUTPUT, SE BORRARIA.

Si un fichero indexado se desea crear y añadir registros en el mismo programa, se procede de la siguiente forma: En la SELECT se incorpora la clausula FILE STATUS IS ERR. ERR es un campo de 2 octetos alfanumerico, donde el programa dejará un codigo de error si éste se produce durante la apertura del fichero. ERR = ð30" significa, fichero no existente. PROCEDURE DIVISION. COMIENZO. 8

OPEN I−O FICHERO IF ERR=ð30" OPEN OUTPUT FICHERO CLOSE FICHERO OPEN I−O FICHERO. MENU. Etc. d) Consulta de Ficheros. 1.1− En ficheros Secuenciales. Solo se puede realizar secuencialmente. Para obtener un listado de todo el fichero podemos realizar el siguiente seudocodigo: FIN=ðNð LEER FICHERO DO UNTIL FIN =ðSð PROCESO MOVER CAMPOS A DETALLE LEER FICHERO AT END FIN=ðSð. ENDDO 1.2.− En ficheros Indexados. Se puede realizar de tres formas: 1.2.1.− Secuencialmente. Se hace igual que para ficheros secuenciales. 1.2.2.− Al azar. Se tiene que poner en la Select ACCESS IS RANDOM. El seudocodigo sería:

ENCONTRADO=ðSð

9

CLAVE = INDICATIVO LEER FICHERO INVALID KEY ENCONTRADO=ðSð IF ENCONTRADO = ðSð VISUALIZAR REGISTRO ELSE VISUALIZAR ERROR. 1.2.3.− Entre limites (desde un indicativo hasta otro dados por teclado) El seudocodigo sería el siguiente: ACEPTAR DESDE ACEPTAR HASTA CLAVE=DESDE ENCONTRADO=ðSð START FICHERO KEY IS NOT LESS CLAVE INVALID KEY ENCONTRADO=ðSð IF ENCONTRADO = ðSð INVOCA ELSE VISUALIZAR ðNO ENCONTRADOð. FIN=ðSð LEER FICHERO NEXT DO UNTIL CLAVE > HASTA OR FIN=ðSð PROCESO LISTAR

10

LEER FICHERO NEXT AT END FIN=ðSð ENDDO e) Modificacion de Registros. Tanto en ficheros secuenciales como indexados se pueden REGRABAR, previa consulta, si el fichero está abierto de I−O. Si la actualizacion es mediante teclado, se utiliza la orden: ACCEPT CAMPO WITH UPDATE Que visualiza el contenido del campo y permite modificarlo, de forma que un solo, no altere el contenido actual del campo. f) Bajas de registros. En un fichero secuencial NO PUEDEN DARSE BAJAS. (Solo con Copia) En un fichero indexado se pueden dar bajas una vez consultado el registro, con la orden DELETE FICHERO. RESUMEN DE COBOL COBOL .−Resumen de Comandos Pagina: 1 GESTINMATICA.− Centro Homologado de F.P.2. en Informatica de Gestión COBOL .−Resumen de Comandos Pagina: 7

11

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.