Direct naar de hoofdinhoud
Module 5 · Les 1 van 29/10 in de cursus~15 min
Modulelessen (1/2)

Bestandsdefinitie en bestandsbeheer

In COBOL is het beheren van externe bestanden (zoals tekstarchieven of binaire records op schijf) een van de belangrijkste functies voor batchbedrijfstoepassingen. Omdat COBOL lang vóór de moderne databases werd ontworpen, fungeren schijfbestanden als primaire opslag.

Het verbinden van fysieke bestanden die op het besturingssysteem zijn opgeslagen met de interne variabelen van het programma gebeurt in twee fasen:

  1. Logisch-fysieke associatie in de ENVIRONMENT DIVISION.
  2. Definitie van het gegevensrecord in DATA DIVISION.

1. Associatie: FILE-CONTROL en SELECT ASSIGN

In het hoofdstuk gewijd aan de programmastructuur hebben we de ENVIRONMENT DIVISION onderzocht. Daarbinnen bevat de INPUT-OUTPUT SECTION de paragraaf FILE-CONTROL, waarin de externe bestanden worden gedeclareerd die door het programma worden gebruikt.

Om een ​​logisch bestand in het programma (bijvoorbeeld SALES-FILE) te koppelen aan een echt fysiek bestand op schijf (bijvoorbeeld sales.dat), gebruikt u de instructie 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: definieert de logische naam die het programma zal gebruiken om naar het bestand te verwijzen.
  • ASSIGN TO "sales.dat": specificeert de daadwerkelijke fysieke bestandsnaam (of pad) op schijf.
  • ORGANIZATION IS LINE SEQUENTIAL (optioneel): geeft aan dat het bestand een gewoon tekstbestand is waarbij elke regel een record vertegenwoordigt (gescheiden door nieuweregeltekens).

2. Verklaring: FILE SECTION en FD

Nadat we het bestand in ENVIRONMENT DIVISION hebben gekoppeld, moeten we de structuur van de records in DATA DIVISION definiëren. Om dit te doen, gebruiken we een speciale sectie met de naam FILE SECTION (die voorafgaat aan WORKING-STORAGE SECTION).

Elk geselecteerd bestand moet een FD (Bestandsbeschrijving) vermelding hebben die de recordstructuur declareert:

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.: Identificeert de bestandsbeschrijving voor de logische naam SALES-FILE. Merk op dat het eindigt met een punt.
  • 01 SALES-RECORD.: specificeert de groepsstructuur (record) die aan het bestand is gekoppeld. Bij elke lees-/schrijfbewerking worden gegevens uitgewisseld met behulp van deze geheugenstructuur.

Probeer het eens

Oefening#cobol.m5.l1.e1
Pogingen: 0Laden…

Vul de ENVIRONMENT DIVISION in om de INPUT-OUTPUT SECTION en de FILE-CONTROL-paragraaf te declareren, waarbij u het logische bestand SALES-FILE associeert met het fysieke bestand 'sales.dat' met behulp van de SELECT ASSIGN-instructie.

Editor laden…
Toon hint

Schrijf MILIEU-AFDELING. en INPUT-OUTPUT-GEDEELTE. in kolom 8 (7 spaties), daarna FILE-CONTROL. in kolom 8 en ten slotte SELECTEER VERKOOPBESTAND TOEWIJZEN AAN 'sales.dat'. in kolom 12 (11 spaties).

Oplossing beschikbaar na 3 pogingen

Oefening#cobol.m5.l1.e2
Pogingen: 0Laden…

Declareer de DATA DIVISION en FILE SECTION voor het programma. Definieer de bestandsdescriptor (FD) voor SALES-FILE en associeer deze met een niveau 01-record met de naam SALES-RECORD die twee ondergeschikte velden bevat: SALES-ID (4-cijferig numeriek) en SALES-AMOUNT (5-cijferig numeriek met 2 impliciete decimalen).

Editor laden…
Toon hint

Gebruik DATADIVISIE. en BESTANDS SECTIE. in kolom 8, FD VERKOOPDOSSIER. in kolom 8, gevolgd door 01 VERKOOPRECORD. in kolom 8 en de velden 05 SALES-ID PIC 9(4). en 05 VERKOOPBEDRAG FOTO 9(5)V99. in kolom 12 op nieuwe regels.

Oplossing beschikbaar na 3 pogingen