En aquest tema, aprendrem com ordenar i fusionar dades en COBOL. Aquestes operacions són fonamentals per a la gestió eficient de grans volums de dades, especialment en aplicacions empresarials. COBOL proporciona instruccions específiques per a aquestes tasques, que veurem en detall a continuació.

  1. Introducció a l'Ordenació de Dades

L'ordenació de dades és el procés d'organitzar les dades en un ordre específic, ja sigui ascendent o descendent. COBOL utilitza la instrucció SORT per a aquesta finalitat.

1.1. Sintaxi de la Instrucció SORT

SORT file-name
    ON ASCENDING/DESCENDING KEY key-name
    USING input-file
    GIVING output-file.

1.2. Explicació de la Sintaxi

  • file-name: Nom del fitxer de treball que s'utilitzarà per a l'ordenació.
  • ASCENDING/DESCENDING KEY: Especifica si l'ordenació serà en ordre ascendent o descendent.
  • key-name: Nom del camp que s'utilitzarà com a clau d'ordenació.
  • USING input-file: Nom del fitxer d'entrada que conté les dades a ordenar.
  • GIVING output-file: Nom del fitxer de sortida on es guardaran les dades ordenades.

1.3. Exemple Pràctic

IDENTIFICATION DIVISION.
PROGRAM-ID. SortExample.

ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
    SELECT InputFile ASSIGN TO 'input.dat'.
    SELECT OutputFile ASSIGN TO 'output.dat'.
    SELECT WorkFile ASSIGN TO 'work.dat'.

DATA DIVISION.
FILE SECTION.
FD InputFile.
01 InputRecord.
   05 KeyField PIC X(10).
   05 DataField PIC X(40).

FD OutputFile.
01 OutputRecord.
   05 KeyField PIC X(10).
   05 DataField PIC X(40).

SD WorkFile.
01 WorkRecord.
   05 KeyField PIC X(10).
   05 DataField PIC X(40).

PROCEDURE DIVISION.
    SORT WorkFile
        ON ASCENDING KEY KeyField
        USING InputFile
        GIVING OutputFile.
    STOP RUN.

1.4. Explicació de l'Exemple

  • InputFile: Fitxer d'entrada amb les dades a ordenar.
  • OutputFile: Fitxer de sortida amb les dades ordenades.
  • WorkFile: Fitxer de treball utilitzat per a l'ordenació.
  • SORT: Instrucció que ordena les dades del InputFile en ordre ascendent segons KeyField i les guarda en OutputFile.

  1. Introducció a la Fusió de Dades

La fusió de dades és el procés de combinar dos o més fitxers ordenats en un sol fitxer ordenat. COBOL utilitza la instrucció MERGE per a aquesta finalitat.

2.1. Sintaxi de la Instrucció MERGE

MERGE file-name
    ON ASCENDING/DESCENDING KEY key-name
    USING input-file-1 input-file-2 ...
    GIVING output-file.

2.2. Explicació de la Sintaxi

  • file-name: Nom del fitxer de treball que s'utilitzarà per a la fusió.
  • ASCENDING/DESCENDING KEY: Especifica si la fusió serà en ordre ascendent o descendent.
  • key-name: Nom del camp que s'utilitzarà com a clau de fusió.
  • USING input-file-1 input-file-2 ...: Noms dels fitxers d'entrada que contenen les dades a fusionar.
  • GIVING output-file: Nom del fitxer de sortida on es guardaran les dades fusionades.

2.3. Exemple Pràctic

IDENTIFICATION DIVISION.
PROGRAM-ID. MergeExample.

ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
    SELECT InputFile1 ASSIGN TO 'input1.dat'.
    SELECT InputFile2 ASSIGN TO 'input2.dat'.
    SELECT OutputFile ASSIGN TO 'output.dat'.
    SELECT WorkFile ASSIGN TO 'work.dat'.

DATA DIVISION.
FILE SECTION.
FD InputFile1.
01 InputRecord1.
   05 KeyField PIC X(10).
   05 DataField PIC X(40).

FD InputFile2.
01 InputRecord2.
   05 KeyField PIC X(10).
   05 DataField PIC X(40).

FD OutputFile.
01 OutputRecord.
   05 KeyField PIC X(10).
   05 DataField PIC X(40).

SD WorkFile.
01 WorkRecord.
   05 KeyField PIC X(10).
   05 DataField PIC X(40).

PROCEDURE DIVISION.
    MERGE WorkFile
        ON ASCENDING KEY KeyField
        USING InputFile1 InputFile2
        GIVING OutputFile.
    STOP RUN.

2.4. Explicació de l'Exemple

  • InputFile1, InputFile2: Fitxers d'entrada amb les dades a fusionar.
  • OutputFile: Fitxer de sortida amb les dades fusionades.
  • WorkFile: Fitxer de treball utilitzat per a la fusió.
  • MERGE: Instrucció que fusiona les dades dels InputFile1 i InputFile2 en ordre ascendent segons KeyField i les guarda en OutputFile.

  1. Exercicis Pràctics

Exercici 1: Ordenació de Dades

Descripció: Escriu un programa COBOL que ordeni un fitxer d'entrada students.dat en ordre ascendent segons el camp StudentID i guardi el resultat en sorted_students.dat.

Solució:

IDENTIFICATION DIVISION.
PROGRAM-ID. SortStudents.

ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
    SELECT StudentsFile ASSIGN TO 'students.dat'.
    SELECT SortedStudentsFile ASSIGN TO 'sorted_students.dat'.
    SELECT WorkFile ASSIGN TO 'work.dat'.

DATA DIVISION.
FILE SECTION.
FD StudentsFile.
01 StudentRecord.
   05 StudentID PIC X(10).
   05 StudentName PIC X(30).

FD SortedStudentsFile.
01 SortedStudentRecord.
   05 StudentID PIC X(10).
   05 StudentName PIC X(30).

SD WorkFile.
01 WorkRecord.
   05 StudentID PIC X(10).
   05 StudentName PIC X(30).

PROCEDURE DIVISION.
    SORT WorkFile
        ON ASCENDING KEY StudentID
        USING StudentsFile
        GIVING SortedStudentsFile.
    STOP RUN.

Exercici 2: Fusió de Dades

Descripció: Escriu un programa COBOL que fusioni dos fitxers d'entrada sales1.dat i sales2.dat en ordre descendent segons el camp SaleID i guardi el resultat en merged_sales.dat.

Solució:

IDENTIFICATION DIVISION.
PROGRAM-ID. MergeSales.

ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
    SELECT SalesFile1 ASSIGN TO 'sales1.dat'.
    SELECT SalesFile2 ASSIGN TO 'sales2.dat'.
    SELECT MergedSalesFile ASSIGN TO 'merged_sales.dat'.
    SELECT WorkFile ASSIGN TO 'work.dat'.

DATA DIVISION.
FILE SECTION.
FD SalesFile1.
01 SalesRecord1.
   05 SaleID PIC X(10).
   05 SaleAmount PIC 9(5)V99.

FD SalesFile2.
01 SalesRecord2.
   05 SaleID PIC X(10).
   05 SaleAmount PIC 9(5)V99.

FD MergedSalesFile.
01 MergedSalesRecord.
   05 SaleID PIC X(10).
   05 SaleAmount PIC 9(5)V99.

SD WorkFile.
01 WorkRecord.
   05 SaleID PIC X(10).
   05 SaleAmount PIC 9(5)V99.

PROCEDURE DIVISION.
    MERGE WorkFile
        ON DESCENDING KEY SaleID
        USING SalesFile1 SalesFile2
        GIVING MergedSalesFile.
    STOP RUN.

  1. Resum

En aquest tema, hem après com ordenar i fusionar dades en COBOL utilitzant les instruccions SORT i MERGE. Hem vist la sintaxi d'aquestes instruccions, exemples pràctics i hem realitzat exercicis per reforçar els conceptes apresos. Aquestes operacions són essencials per a la gestió eficient de dades en aplicacions empresarials, i dominar-les és crucial per a qualsevol programador COBOL.

© Copyright 2024. Tots els drets reservats