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:
- Logisch-physische Verknüpfung in der
ENVIRONMENT DIVISION. - 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:
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:
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 NamenSALES-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
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'.
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
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).
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