Salt la conținutul principal
Modulul 5 · Lecția 1 din 29/10 în curs~15 min
Lecții din modul (1/2)

Definiție și control fișiere

În COBOL, gestionarea fișierelor externe (cum ar fi arhivele de text sau înregistrările binare de pe disc) este una dintre cele mai importante caracteristici pentru aplicațiile corporative batch. Deoarece COBOL a fost proiectat cu mult înaintea bazelor de date moderne, fișierele de disc acționează ca stocare principală.

Conectarea fișierelor fizice stocate pe sistemul de operare cu variabilele interne ale programului are loc în două faze:

  1. Asociere logico-fizică în ENVIRONMENT DIVISION.
  2. Definirea înregistrării de date în DATA DIVISION.

1. Asociere: FILE-CONTROL și SELECT ASSIGN

În capitolul dedicat structurii programului, am explorat ENVIRONMENT DIVISION. În cadrul acestuia, INPUT-OUTPUT SECTION conține paragraful FILE-CONTROL, care declară fișierele externe utilizate de program.

Pentru a asocia un fișier logic în program (de ex., SALES-FILE) cu un fișier fizic real de pe disc (de ex., sales.dat), utilizați instrucțiunea SELECT ... ASSIGN TO ...:

COBOL
       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT SALES-FILE ASSIGN TO "sales.dat"
               ORGANIZATION IS LINE SEQUENTIAL.
  • SELECT SALES-FILE: definește numele logic pe care programul îl va folosi pentru a face referire la fișier.
  • ASSIGN TO "sales.dat": Specifică numele real al fișierului fizic (sau calea) de pe disc.
  • ORGANIZATION IS LINE SEQUENTIAL (opțional): indică faptul că fișierul este un fișier text simplu în care fiecare linie reprezintă o înregistrare (separată prin caractere newline).

2. Declaratie: SECTIUNEA DOSAR si FD

După asocierea fișierului în ENVIRONMENT DIVISION, trebuie să definim structura înregistrărilor acestuia în DATA DIVISION. Pentru a face acest lucru, folosim o secțiune dedicată numită FILE SECTION (care precede WORKING-STORAGE SECTION).

Fiecare fișier selectat trebuie să aibă o intrare FD (Descriere fișier) care declară structura înregistrării:

COBOL
       DATA DIVISION.
       FILE SECTION.
       FD SALES-FILE.
       01 SALES-RECORD.
           05 EMP-ID       PIC 9(5).
           05 EMP-NAME     PIC X(20).
           05 EMP-SALARY   PIC 9(6)V99.
  • FD SALES-FILE.: identifică descrierea fișierului pentru numele logic SALES-FILE. Rețineți că se termină cu un punct.
  • 01 SALES-RECORD.: Specifică structura grupului (înregistrarea) asociată fișierului. Fiecare operație de citire/scriere va face schimb de date folosind această structură de memorie.

Încearcă-l

Exercițiu#cobol.m5.l1.e1
Încercări: 0Se încarcă…

Completați DIVIZIUNEA MEDIU pentru a declara SECȚIUNEA INPUT-OUTPUT și paragraful FILE-CONTROL, asociind fișierul logic SALES-FILE cu fișierul fizic 'sales.dat' folosind instrucțiunea SELECT ASSIGN.

Se încarcă editorul...
Afișează indiciu

Scrie DIVISIUNEA MEDIULUI. şi SECŢIUNEA INTRARE-IEŞIRE. în coloana 8 (7 spații), apoi FILE-CONTROL. în coloana 8 și, în final, SELECTAȚI VÂNZĂRI-FIȘIER ATRIBUIRE LA „sales.dat”. în coloana 12 (11 spații).

Soluție disponibilă după 3 încercări

Exercițiu#cobol.m5.l1.e2
Încercări: 0Se încarcă…

Declarați DIVIZIUNEA DE DATE și SECȚIUNEA DE FIȘIER pentru program. Definiți Descriptorul Fișierului (FD) pentru SALES-FILE, asociindu-l cu o înregistrare de nivel 01 numită SALES-RECORD care conține două câmpuri subordonate: SALES-ID (numerice de 4 cifre) și SUMA-VÂNZĂRI (numerice de 5 cifre cu 2 zecimale implicite).

Se încarcă editorul...
Afișează indiciu

Utilizați DATA DIVISION. și SECȚIUNEA DE FIȘIER. în coloana 8, FD VÂNZĂRI-DOSAR. în coloana 8, urmată de 01 SALE-RECORD. în coloana 8 și câmpurile 05 SALES-ID PIC 9(4). și 05 VÂNZĂRI-SUMA PIC 9(5)V99. în coloana 12 pe rânduri noi.

Soluție disponibilă după 3 încercări