Parte ii - IIS Marconi Latina - Area didattica
Parte ii - IIS Marconi Latina - Area didattica Parte ii - IIS Marconi Latina - Area didattica
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
- Page 1 and 2: TXT HTM PDF pdf P1 P2 P3 P4 Parte i
- Page 3 and 4: 849 Capitolo 82 TXT HTM PDF pdf P1
- Page 5 and 6: Manuale COBOL 851 82.12.8 Istruzion
- Page 7 and 8: Manuale COBOL 853 Gli autori e i ti
- Page 9 and 10: Manuale COBOL 855 La divisione ‘D
- Page 11 and 12: Manuale COBOL 857 I caratteri di in
- Page 13 and 14: Manuale COBOL 859 |Tabella 82.7. Cl
- Page 15 and 16: Manuale COBOL 861 Una costante nume
- Page 17 and 18: Manuale COBOL 863 |Tabella 82.15. C
- Page 19 and 20: Manuale COBOL 865 |Listato 82.17. U
- Page 21 and 22: Manuale COBOL 867 |Figura 82.18. Es
- Page 23 and 24: Manuale COBOL 869 82.3.2 Codifica d
- Page 25 and 26: Manuale COBOL 871 82.4.2.2 Paragraf
- Page 27 and 28: Manuale COBOL 873 |001000 SPECIAL-N
- Page 29 and 30: Manuale COBOL 875 82.4.3.3 Istruzio
- Page 31 and 32: Manuale COBOL 877 |003300 DISPLAY "
- Page 33 and 34: Manuale COBOL 879 |002300 PROCEDURE
- Page 35: Manuale COBOL 881 Un file organizza
- Page 39 and 40: Manuale COBOL 885 Nei manuali COBOL
- Page 41 and 42: Manuale COBOL 887 Codice Organizzaz
- Page 43 and 44: Manuale COBOL 889 record) può esse
- Page 45 and 46: Manuale COBOL 891 82.5.1.3 Dichiara
- Page 47 and 48: Manuale COBOL 893 82.5.1.8 Dichiara
- Page 49 and 50: Manuale COBOL 895 |000000 01 RECORD
- Page 51 and 52: Manuale COBOL 897 In questo caso, i
- Page 53 and 54: Manuale COBOL 899 Nel primo schema,
- Page 55 and 56: Manuale COBOL 901 |P: ABCDEFGHIJ |Q
- Page 57 and 58: Manuale COBOL 903 82.6.5 Opzione «
- Page 59 and 60: Manuale COBOL 905 82.6.10 Opzione
- Page 61 and 62: Manuale COBOL 907 82.7.2 Riferiment
- Page 63 and 64: Manuale COBOL 909 |000100 IDENTIFIC
- Page 65 and 66: Manuale COBOL 911 |001500 03 COGNOM
- Page 67 and 68: Manuale COBOL 913 |000700* |000800
- Page 69 and 70: Manuale COBOL 915 La parola chiave
- Page 71 and 72: Manuale COBOL 917 82.8.3 Qualificaz
- Page 73 and 74: Manuale COBOL 919 82.9 Modello di d
- Page 75 and 76: Manuale COBOL 921 viene assegnato l
- Page 77 and 78: Manuale COBOL 923 |002600 " DATA: "
- Page 79 and 80: Manuale COBOL 925 |SOURCE VALUE IS
- Page 81 and 82: Manuale COBOL 927 |004900 DISPLAY "
- Page 83 and 84: Manuale COBOL 929 Compilando il pro
- Page 85 and 86: Manuale COBOL 931 Il primo gruppo d
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