Parte ii - IIS Marconi Latina - Area didattica

Parte ii - IIS Marconi Latina - Area didattica Parte ii - IIS Marconi Latina - Area didattica

iismarconi.net
from iismarconi.net More from this publisher
24.01.2014 Views

882 volume V Programmazione Viene proposto un esempio di riordino di file, nel quale, in particolare, si dichiarano i nomi dei file su disco, direttamente nell’istruzione ‘SELECT’: |000100 IDENTIFICATION DIVISION. |000200 PROGRAM-ID. ORDINA. |000300 AUTHOR. DANIELE GIACOMINI. |000400 DATE-WRITTEN. 2005-02-25. |000500* |000600 ENVIRONMENT DIVISION. |000700* |000800 INPUT-OUTPUT SECTION. |000900* |001000 FILE-CONTROL. |001100* |001200 SELECT FILE-DA-ORDINARE ASSIGN TO "input.seq". |001300 SELECT FILE-ORDINATO ASSIGN TO "output.seq". |001400 SELECT FILE-PER-IL-RIORDINO ASSIGN TO "sort.tmp". |001500* |001600 DATA DIVISION. |001700* |001800 FILE SECTION. |001900* |002000 FD FILE-DA-ORDINARE. |002100 01 RECORD-DA-ORDINARE PIC X(80). |002200* |002300 FD FILE-ORDINATO. |002400 01 RECORD-ORDINATO PIC X(80). |002500* |002600 SD FILE-PER-IL-RIORDINO. |002700* |002800 01 RECORD-PER-IL-RIORDINO. |002900 02 CHIAVE-ORDINAMENTO PIC X(10). |003000 02 FILLER PIC X(70). |003100* |003200 PROCEDURE DIVISION. |003300* |003400 MAIN. |003500 SORT FILE-PER-IL-RIORDINO, |003600 ON ASCENDING KEY CHIAVE-ORDINAMENTO, |003700 USING FILE-DA-ORDINARE, |003800 GIVING FILE-ORDINATO. |003900* |004000 STOP RUN. |004100* Come si può vedere, si vuole ordinare il file ‘input.seq’ per generare il file ‘output.seq’, ordinato. Per fare questo, si usa un file intermedio, denominato ‘sort.tmp’. Al termine dell’operazione, non dovrebbe rimanere traccia del file intermedio. Si osservi che non si rende necessaria l’apertura dei file coinvolti per portare a termine l’operazione.

Manuale COBOL 883 L’esempio seguente riguarda la fusione: si hanno i file ‘input-1.seq’ e ‘input-2.seq’ ordinati e si vuole ottenere il file ‘output.seq’ con la somma dei record, mantenendo l’ordinamento: |000100 IDENTIFICATION DIVISION. |000200 PROGRAM-ID. MERGE. |000300 AUTHOR. DANIELE GIACOMINI. |000400 DATE-WRITTEN. 2005-02-25. |000500* |000600 ENVIRONMENT DIVISION. |000700* |000800 INPUT-OUTPUT SECTION. |000900* |001000 FILE-CONTROL. |001100* |001200 SELECT FILE-INPUT-1 ASSIGN TO "input-1.seq". |001300 SELECT FILE-INPUT-2 ASSIGN TO "input-2.seq". |001400 SELECT FILE-OUTPUT ASSIGN TO "output.seq". |001500 SELECT FILE-PER-LA-FUSIONE ASSIGN TO "merge.tmp". |001600* |001700 DATA DIVISION. |001800* |001900 FILE SECTION. |002000* |002100 FD FILE-INPUT-1 |002200 01 RECORD-1 PIC X(80). |002300* |002400 FD FILE-INPUT-2 |002500 01 RECORD-2 PIC X(80). |002600* |002700 FD FILE-OUTPUT |002800 01 RECORD-OUTPUT PIC X(80). |002900* |003000 SD FILE-PER-LA-FUSIONE. |003100* |003200 01 RECORD-PER-LA-FUSIONE. |003300 02 CHIAVE-ORDINAMENTO PIC X(10). |003400 02 FILLER PIC X(70). |003500* |003600 PROCEDURE DIVISION. |003700* |003800 MAIN. |003900 MERGE FILE-PER-LA-FUSIONE |004000 ON ASCENDING KEY CHIAVE-ORDINAMENTO, |004100 USING FILE-INPUT-1, |004200 FILE-INPUT-2, |004300 GIVING FILE-OUTPUT. |004400* |004500 STOP RUN. |004600* Si osservi che esistono compilatori COBOL, di buona qualità, che però non offrono le funzionalità di riordino e di fusione, oppure non in modo completo. È frequente l’assenza della

Manuale COBOL 883<br />

L’esempio seguente riguarda la fusione: si hanno i file ‘input-1.seq’ e ‘input-2.seq’<br />

ordinati e si vuole ottenere il file ‘output.seq’ con la somma dei record, mantenendo<br />

l’ordinamento:<br />

|000100 IDENTIFICATION DIVISION.<br />

|000200 PROGRAM-ID. MERGE.<br />

|000300 AUTHOR. DANIELE GIACOMINI.<br />

|000400 DATE-WRITTEN. 2005-02-25.<br />

|000500*<br />

|000600 ENVIRONMENT DIVISION.<br />

|000700*<br />

|000800 INPUT-OUTPUT SECTION.<br />

|000900*<br />

|001000 FILE-CONTROL.<br />

|001100*<br />

|001200 SELECT FILE-INPUT-1 ASSIGN TO "input-1.seq".<br />

|001300 SELECT FILE-INPUT-2 ASSIGN TO "input-2.seq".<br />

|001400 SELECT FILE-OUTPUT ASSIGN TO "output.seq".<br />

|001500 SELECT FILE-PER-LA-FUSIONE ASSIGN TO "merge.tmp".<br />

|001600*<br />

|001700 DATA DIVISION.<br />

|001800*<br />

|001900 FILE SECTION.<br />

|002000*<br />

|002100 FD FILE-INPUT-1<br />

|002200 01 RECORD-1 PIC X(80).<br />

|002300*<br />

|002400 FD FILE-INPUT-2<br />

|002500 01 RECORD-2 PIC X(80).<br />

|002600*<br />

|002700 FD FILE-OUTPUT<br />

|002800 01 RECORD-OUTPUT PIC X(80).<br />

|002900*<br />

|003000 SD FILE-PER-LA-FUSIONE.<br />

|003100*<br />

|003200 01 RECORD-PER-LA-FUSIONE.<br />

|003300 02 CHIAVE-ORDINAMENTO PIC X(10).<br />

|003400 02 FILLER PIC X(70).<br />

|003500*<br />

|003600 PROCEDURE DIVISION.<br />

|003700*<br />

|003800 MAIN.<br />

|003900 MERGE FILE-PER-LA-FUSIONE<br />

|004000 ON ASCENDING KEY CHIAVE-ORDINAMENTO,<br />

|004100 USING FILE-INPUT-1,<br />

|004200 FILE-INPUT-2,<br />

|004300 GIVING FILE-OUTPUT.<br />

|004400*<br />

|004500 STOP RUN.<br />

|004600*<br />

Si osservi che esistono compilatori COBOL, di buona qualità, che però non offrono le funzionalità<br />

di riordino e di fusione, oppure non in modo completo. È frequente l’assenza della

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!