Przejdź do głównej treści
eLearner.app
Moduł 5 · Lekcja 1 z 29/10 w kursie~15 min
Lekcje modułu (1/2)

Definicja Plików i File-Control

W COBOL-u zarządzanie plikami zewnętrznymi (takimi jak pliki tekstowe lub rekordy binarne na dysku) jest jedną z najważniejszych funkcji dla biznesowych aplikacji wsadowych (batch). Ponieważ COBOL powstał na długo przed nowoczesnymi bazami danych, pliki na dysku służą jako główny nośnik pamięci.

Połączenie między plikami fizycznymi zapisanymi w systemie operacyjnym a wewnętrznymi zmiennymi programu odbywa się w dwóch etapach:

  1. Powiązanie logiczno-fizyczne w sekcji ENVIRONMENT DIVISION.
  2. Definicja rekordu danych w sekcji DATA DIVISION.

1. Powiązanie: FILE-CONTROL i SELECT ASSIGN

W rozdziale poświęconym strukturze programu poznaliśmy sekcję ENVIRONMENT DIVISION. W jej wnętrzu znajduje się INPUT-OUTPUT SECTION, a w niej sekcja FILE-CONTROL, która deklaruje zewnętrzne pliki używane przez program.

Aby powiązać plik logiczny programu (np. SALES-FILE) z rzeczywistym plikiem fizycznym na dysku (np. sales.dat), używa się instrukcji SELECT ... ASSIGN TO ... :

Code
       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT SALES-FILE ASSIGN TO "sales.dat"
               ORGANIZATION IS LINE SEQUENTIAL.
  • SELECT SALES-FILE : Definiuje nazwę logiczną, której program będzie używał do odwoływania się do pliku.
  • ASSIGN TO "sales.dat" : Określa nazwę pliku fizycznego (lub ścieżkę) na dysku.
  • ORGANIZATION IS LINE SEQUENTIAL (opcjonalnie) : Wskazuje, że plik jest zwykłym plikiem tekstowym, w którym każda linia reprezentuje rekord (oddzielona znakiem nowej linii).

2. Deklaracja: FILE SECTION i FD

Po powiązaniu pliku w sekcji ENVIRONMENT DIVISION musimy zdefiniować strukturę jego rekordów w sekcji DATA DIVISION. Aby to zrobić, używamy dedykowanej sekcji o nazwie FILE SECTION (która poprzedza sekcję WORKING-STORAGE SECTION).

Każdy wybrany plik musi posiadać wpis FD (File Description), który deklaruje strukturę rekordu:

Code
       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. : Identyfikuje opis pliku dla nazwy logicznej SALES-FILE. Zwróć uwagę, że kończy się kropką.
  • 01 SALES-RECORD. : Określa strukturę grupową (rekord) powiązaną z plikiem. Każda operacja odczytu/zapisu będzie wymieniać dane przy użyciu tej struktury w pamięci.

Spróbuj sam

Ćwiczenie#cobol.m5.l1.e1
Próby: 0Ładowanie...

Uzupełnij ENVIRONMENT DIVISION, aby zadeklarować INPUT-OUTPUT SECTION i paragraf FILE-CONTROL, kojarząc plik logiczny SALES-FILE z plikiem fizycznym 'sales.dat' za pomocą instrukcji SELECT ASSIGN.

Ładowanie edytora...
Pokaż wskazówkę

Wpisz ENVIRONMENT DIVISION. i INPUT-OUTPUT SECTION. w kolumnie 8 (7 spacji), następnie FILE-CONTROL. w kolumnie 8 i na koniec SELECT SALES-FILE ASSIGN TO 'sales.dat'. w kolumnie 12 (11 spacji).

Rozwiązanie dostępne po 3 próbach

Ćwiczenie#cobol.m5.l1.e2
Próby: 0Ładowanie...

Zadeklaruj DATA DIVISION i FILE SECTION dla programu. Zdefiniuj File Descriptor (FD) dla pliku SALES-FILE, kojarząc z nim rekord poziomu 01 o nazwie SALES-RECORD, zawierający dwa pola podrzędne: SALES-ID (numeryczne o długości 4 cyfr) i SALES-AMOUNT (numeryczne o długości 5 cyfr z 2 niejawny cyframi dziesiętnymi).

Ładowanie edytora...
Pokaż wskazówkę

Użyj DATA DIVISION. i FILE SECTION. w kolumnie 8, FD SALES-FILE. w kolumnie 8, a następnie pod spodem 01 SALES-RECORD. w kolumnie 8 oraz pola 05 SALES-ID PIC 9(4). i 05 SALES-AMOUNT PIC 9(5)V99. w kolumnie 12.

Rozwiązanie dostępne po 3 próbach