Direkt zum Hauptinhalt springen
eLearner.app
Modul 5 · Lektion 1 von 29/10 im Kurs~15 min
Lektionen des Moduls (1/2)

Dateidefinition und File-Control

In COBOL ist die Verwaltung externer Dateien (wie Textdateien oder Binärdatensätze auf der Festplatte) eine der wichtigsten Funktionen für Batch-Unternehmensanwendungen. Da COBOL lange vor modernen Datenbanken entwickelt wurde, fungieren Dateien auf der Festplatte als Primärspeicher.

Die Verbindung zwischen den auf dem Betriebssystem gespeicherten physischen Dateien und den internen Variablen des Programms erfolgt in zwei Phasen:

  1. Logisch-physische Verknüpfung in der ENVIRONMENT DIVISION.
  2. Definition des Datensatzes in der DATA DIVISION.

1. Verknüpfung: FILE-CONTROL und SELECT ASSIGN

Im Kapitel über die Programmstruktur haben wir die ENVIRONMENT DIVISION kennengelernt. Darin befindet sich die INPUT-OUTPUT SECTION, in der die Sektion FILE-CONTROL die vom Programm verwendeten externen Dateien deklariert.

Um eine logische Datei des Programms (z. B. SALES-FILE) mit einer echten physischen Datei auf der Festplatte (z. B. sales.dat) zu verknüpfen, wird die Anweisung SELECT ... ASSIGN TO ... verwendet:

Code
       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT SALES-FILE ASSIGN TO "sales.dat"
               ORGANIZATION IS LINE SEQUENTIAL.
  • SELECT SALES-FILE: Definiert den logischen Namen, den das Programm für den Zugriff auf die Datei verwendet.
  • ASSIGN TO "sales.dat": Gibt den physischen Dateinamen (oder Pfad) auf der Festplatte an.
  • ORGANIZATION IS LINE SEQUENTIAL (optional): Gibt an, dass es sich bei der Datei um eine normale Textdatei handelt, bei der jede Zeile einen Datensatz darstellt (durch ein Zeilenumbruchzeichen getrennt).

2. Deklaration: FILE SECTION und FD

Nachdem wir die Datei in der ENVIRONMENT DIVISION verknüpft haben, müssen wir die Struktur ihrer Datensätze in der DATA DIVISION definieren. Dazu verwenden wir einen speziellen Abschnitt namens FILE SECTION (der der WORKING-STORAGE SECTION vorangestellt ist).

Jede ausgewählte Datei muss einen Eintrag FD (File Description) haben, der die Struktur des Datensatzes deklariert:

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.: Identifiziert die Dateibeschreibung für den logischen Namen SALES-FILE. Beachten Sie, dass sie mit einem Punkt endet.
  • 01 SALES-RECORD.: Gibt die mit der Datei verknüpfte Gruppenstruktur (Datensatz) an. Jede Lese-/Schreiboperation tauscht Daten unter Verwendung dieser Struktur im Speicher aus.

Probier es selbst aus

Übung#cobol.m5.l1.e1
Versuche: 0Wird geladen…

Vervollständigen Sie die ENVIRONMENT DIVISION, um die INPUT-OUTPUT SECTION und den Absatz FILE-CONTROL zu deklarieren, und verknüpfen Sie die logische Datei SALES-FILE über die Anweisung SELECT ASSIGN mit der physischen Datei 'sales.dat'.

Editor wird geladen…
Hinweis anzeigen

Schreiben Sie ENVIRONMENT DIVISION. und INPUT-OUTPUT SECTION. in Spalte 8 (7 Leerzeichen), dann FILE-CONTROL. in Spalte 8 und schließlich SELECT SALES-FILE ASSIGN TO 'sales.dat'. in Spalte 12 (11 Leerzeichen).

Lösung nach 3 Versuchen verfügbar

Übung#cobol.m5.l1.e2
Versuche: 0Wird geladen…

Deklarieren Sie die DATA DIVISION und die FILE SECTION für das Programm. Definieren Sie den File Descriptor (FD) für die Datei SALES-FILE und verknüpfen Sie ihn mit einem Datensatz der Ebene 01 namens SALES-RECORD, der zwei untergeordnete Felder enthält: SALES-ID (numerisch mit 4 Stellen) und SALES-AMOUNT (numerisch mit 5 Stellen und 2 impliziten Dezimalstellen).

Editor wird geladen…
Hinweis anzeigen

Verwenden Sie DATA DIVISION. und FILE SECTION. in Spalte 8, FD SALES-FILE. in Spalte 8, gefolgt von 01 SALES-RECORD. in Spalte 8 und den Feldern 05 SALES-ID PIC 9(4). und 05 SALES-AMOUNT PIC 9(5)V99. in Spalte 12.

Lösung nach 3 Versuchen verfügbar