La gestió d'arxius és una part fonamental de la programació en COBOL, ja que molts sistemes empresarials utilitzen arxius per emmagatzemar i processar dades. En aquest tema, aprendrem com COBOL maneja els arxius, incloent-hi la seva definició, obertura, lectura, escriptura i tancament.
Conceptes Clau
- Tipus d'Arxius: COBOL suporta diversos tipus d'arxius, incloent-hi arxius seqüencials, indexats i relatius.
- Divisió de Fitxers: La divisió de fitxers en COBOL és on es defineixen els arxius que el programa utilitzarà.
- Operacions Bàsiques: Inclouen l'obertura, lectura, escriptura i tancament d'arxius.
Estructura Bàsica per a la Gestió d'Arxius
Divisió de Fitxers
La divisió de fitxers és on es defineixen els arxius que el programa utilitzarà. Aquí es declara el nom lògic de l'arxiu i el seu mode d'accés.
Divisió de Dades
En la divisió de dades, es defineixen les estructures de registre que s'utilitzaran per llegir i escriure dades en els arxius.
DATA DIVISION. FILE SECTION. FD arxiu-seqüencial. 01 registre-arxiu. 05 camp1 PIC X(10). 05 camp2 PIC 9(5).
Divisió de Procediments
En la divisió de procediments, es realitzen les operacions sobre els arxius, com ara obrir, llegir, escriure i tancar.
PROCEDURE DIVISION. OPEN INPUT arxiu-seqüencial. READ arxiu-seqüencial INTO registre-arxiu AT END DISPLAY 'Fi de l'arxiu'. CLOSE arxiu-seqüencial.
Exemples Pràctics
Exemple 1: Llegir un Arxiu Seqüencial
Aquest exemple mostra com llegir un arxiu seqüencial i mostrar el seu contingut.
IDENTIFICATION DIVISION. PROGRAM-ID. llegir-arxiu. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT arxiu-seqüencial ASSIGN TO 'arxiu.dat' ORGANIZATION IS SEQUENTIAL. DATA DIVISION. FILE SECTION. FD arxiu-seqüencial. 01 registre-arxiu. 05 camp1 PIC X(10). 05 camp2 PIC 9(5). WORKING-STORAGE SECTION. 01 fi-de-larxiu PIC X VALUE 'N'. PROCEDURE DIVISION. OPEN INPUT arxiu-seqüencial. PERFORM UNTIL fi-de-larxiu = 'S' READ arxiu-seqüencial INTO registre-arxiu AT END MOVE 'S' TO fi-de-larxiu NOT AT END DISPLAY 'Camp1: ' camp1 ' Camp2: ' camp2 END-READ END-PERFORM. CLOSE arxiu-seqüencial. STOP RUN.
Exemple 2: Escriure en un Arxiu Seqüencial
Aquest exemple mostra com escriure dades en un arxiu seqüencial.
IDENTIFICATION DIVISION. PROGRAM-ID. escriure-arxiu. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT arxiu-seqüencial ASSIGN TO 'arxiu.dat' ORGANIZATION IS SEQUENTIAL. DATA DIVISION. FILE SECTION. FD arxiu-seqüencial. 01 registre-arxiu. 05 camp1 PIC X(10). 05 camp2 PIC 9(5). WORKING-STORAGE SECTION. 01 ws-camp1 PIC X(10) VALUE 'Exemple'. 01 ws-camp2 PIC 9(5) VALUE 12345. PROCEDURE DIVISION. OPEN OUTPUT arxiu-seqüencial. MOVE ws-camp1 TO camp1. MOVE ws-camp2 TO camp2. WRITE registre-arxiu. CLOSE arxiu-seqüencial. STOP RUN.
Exercicis Pràctics
Exercici 1: Llegir i Comptar Registres
Descripció: Escriu un programa COBOL que llegeixi un arxiu seqüencial i compti el nombre de registres.
Solució:
IDENTIFICATION DIVISION. PROGRAM-ID. comptar-registres. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT arxiu-seqüencial ASSIGN TO 'arxiu.dat' ORGANIZATION IS SEQUENTIAL. DATA DIVISION. FILE SECTION. FD arxiu-seqüencial. 01 registre-arxiu. 05 camp1 PIC X(10). 05 camp2 PIC 9(5). WORKING-STORAGE SECTION. 01 fi-de-larxiu PIC X VALUE 'N'. 01 comptador PIC 9(5) VALUE 0. PROCEDURE DIVISION. OPEN INPUT arxiu-seqüencial. PERFORM UNTIL fi-de-larxiu = 'S' READ arxiu-seqüencial INTO registre-arxiu AT END MOVE 'S' TO fi-de-larxiu NOT AT END ADD 1 TO comptador END-READ END-PERFORM. CLOSE arxiu-seqüencial. DISPLAY 'Nombre de registres: ' comptador. STOP RUN.
Exercici 2: Escriure Registres des d'Entrada de l'Usuari
Descripció: Escriu un programa COBOL que demani a l'usuari que introdueixi dades i les escrigui en un arxiu seqüencial.
Solució:
IDENTIFICATION DIVISION. PROGRAM-ID. escriure-usuari. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT arxiu-seqüencial ASSIGN TO 'arxiu.dat' ORGANIZATION IS SEQUENTIAL. DATA DIVISION. FILE SECTION. FD arxiu-seqüencial. 01 registre-arxiu. 05 camp1 PIC X(10). 05 camp2 PIC 9(5). WORKING-STORAGE SECTION. 01 ws-camp1 PIC X(10). 01 ws-camp2 PIC 9(5). 01 continuar PIC X VALUE 'S'. PROCEDURE DIVISION. OPEN OUTPUT arxiu-seqüencial. PERFORM UNTIL continuar = 'N' DISPLAY 'Introdueix camp1: '. ACCEPT ws-camp1. DISPLAY 'Introdueix camp2: '. ACCEPT ws-camp2. MOVE ws-camp1 TO camp1. MOVE ws-camp2 TO camp2. WRITE registre-arxiu. DISPLAY 'Vols continuar (S/N)? '. ACCEPT continuar END-PERFORM. CLOSE arxiu-seqüencial. STOP RUN.
Resum
En aquesta secció, hem après els conceptes bàsics de la gestió d'arxius en COBOL, incloent-hi com definir, obrir, llegir, escriure i tancar arxius. També hem vist exemples pràctics i exercicis per reforçar els conceptes apresos. La gestió d'arxius és una habilitat essencial per a qualsevol programador COBOL, ja que molts sistemes empresarials depenen d'arxius per emmagatzemar i processar dades.
Curs de Programació COBOL
Mòdul 1: Introducció al COBOL
- Què és el COBOL?
- Història del COBOL
- Configuració de l'Entorn COBOL
- Estructura Bàsica d'un Programa COBOL
Mòdul 2: Sintaxi Bàsica del COBOL i Tipus de Dades
Mòdul 3: Estructures de Control
Mòdul 4: Treballant amb Dades
- Gestió d'Arxius en COBOL
- Processament d'Arxius Seqüencials
- Processament d'Arxius Indexats
- Processament d'Arxius Relatius
Mòdul 5: Gestió Avançada de Dades
Mòdul 6: Subprogrames i Programació Modular
Mòdul 7: Gestió d'Errors i Depuració
Mòdul 8: COBOL i Bases de Dades
Mòdul 9: Temes Avançats
- COBOL Orientat a Objectes
- COBOL i Serveis Web
- Optimització del Rendiment
- Millors Pràctiques en Programació COBOL