Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Indexed - indici.cbl

indici.cbl

Caricato da: Netarrow
Scarica il programma completo

  1. * Questo programma scrive in un file a indice
  2.       * alcuni record in modalità random, visualizza il buon fine della scrittura
  3.       * o l'eventuale errore e relativo file-status.
  4.       * Quindi legge lo stesso file sequenzialmente mostrando
  5.       * come le chiavi vengano ordinate anche se inserite in disordine.
  6.        identification division.
  7.        program-id. indici.
  8.        author. Matteo Tomasulo.
  9.        
  10.        environment division.
  11.        input-output section.
  12.        file-control.
  13.            select esempio assign to disk
  14.            organization is indexed
  15.            access mode is random
  16.            file status esempio-status
  17.            record key is chiave-di-record.
  18.  
  19.            select reader assign to disk
  20.            organization is indexed
  21.            access mode is sequential
  22.            file status reader-status
  23.            record key is chiave-di-record-ord.
  24.            
  25.        data division.
  26.        file section.
  27.        
  28.        fd esempio
  29.           label record is standard
  30.           value of file-id is "test.dat".
  31.          
  32.        01  rec.
  33.            02  chiave-di-record pic x(20).
  34.            02  campo            pic x(30).
  35.            
  36.        fd reader
  37.           label record is standard
  38.           value of file-id is "test.dat".
  39.            
  40.        01  rec-2.
  41.            02  chiave-di-record-ord pic x(20).
  42.            02  campo-2              pic x(30).  
  43.            
  44.        working-storage section.
  45.        
  46.        77  esempio-status pic xx.
  47.        77  esempio-fine   pic xx.
  48.        77  reader-status   pic xx.
  49.        77  reader-fine     pic xx.
  50.        77  chiave-ricerca pic x(20).
  51.          
  52.        procedure division.
  53.        inizio.
  54.        
  55.            open output esempio.        
  56.            
  57.            move "Pinco Pallino" to chiave-di-record.
  58.            move "5" to campo.
  59.            
  60.            write rec
  61.               invalid key
  62.                   display "errore nello scrivere il primo record: "
  63.                   display esempio-status
  64.               not invalid key
  65.                   display "Scritto:"
  66.                   display chiave-di-record
  67.                   display campo
  68.            end-write.
  69.                              
  70.            move "Tizio Caio" to chiave-di-record.
  71.            move "8" to campo.
  72.            
  73.            write rec
  74.               invalid key
  75.                   display "errore nello scrivere il secondo record: "
  76.                   display esempio-status
  77.               not invalid key
  78.                   display "Scritto:"
  79.                   display chiave-di-record
  80.                   display campo
  81.            end-write.
  82.                  
  83.            move "Franco Calabro" to chiave-di-record.
  84.            move "10" to campo.                      
  85.            
  86.            write rec
  87.               invalid key
  88.                   display "errore nello scrivere il terzo record: "
  89.                   display esempio-status
  90.               not invalid key
  91.                   display "Scritto:"
  92.                   display chiave-di-record
  93.                   display campo
  94.            end-write.
  95.        
  96.            close esempio.
  97.            
  98.            open input reader.
  99.            
  100.            perform leggi.
  101.            
  102.            close reader.
  103.            
  104.            open i-o esempio.
  105.            
  106.            display " "
  107.            display "Dimmi il nome dello studente a cui cambiare il voto".
  108.            accept chiave-di-record.
  109.  
  110.            read esempio key is chiave-di-record
  111.                invalid key
  112.                  display "Lo studente non esiste"
  113.                not invalid key
  114.                  display "Dimmi il nuovo voto: "
  115.                  accept campo
  116.                  rewrite rec
  117.            end-read.
  118.            
  119.            close esempio.
  120.            
  121.            display " ".
  122.            display "Situazione dopo modifica: ".
  123.            
  124.            open input reader.
  125.            
  126.            perform leggi.
  127.                                        
  128.            stop 1.
  129.            
  130.            stop run.  
  131.            
  132.        leggi.
  133.            read reader
  134.               at end
  135.                  move "si" to reader-fine
  136.               not at end
  137.                  move "no" to reader-fine
  138.            end-read.
  139.            
  140.            display " "
  141.            perform leggi-sequenzialmente until reader-fine = "si".
  142.            
  143.            
  144.        leggi-sequenzialmente.
  145.            display "Letto: "
  146.            display chiave-di-record-ord.
  147.            display campo-2.
  148.            read reader at end move "si" to reader-fine.