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
