Funktion
Die ASSIGN-Klausel weist einer Datei des COBOL-Programms ein externes Gerät zu. Für jede Datei im Programm wird eine ASSIGN-Klausel benötigt.
Format 1 für sequenzielle Dateiorganisation
ASSIGN { TO { PRINTER [literal-1] | herstellername-1 | literal-2 }... | USING datenname-1 }
Format 2 für relative und indizierte Dateiorganisation
ASSIGN {TO literal-1... | USING datenname-1}
Format 3 für Sortierdateien
ASSIGN TO {herstellername-1 | literal}
Syntaxregeln
Nur für sequenziell organisierte Dateien gilt:
- Die Angabe PRINTER ohne literal-1 bezeichnet die logische Systemdatei SYSLST.
Die Angabe PRINTER literal-1 bezeichnet eine Druckdatei. In beiden Fällen reserviert der Compiler das Vorschubsteuerzeichen, das dem Benutzer nicht zugänglich ist. herstellername-1 bezeichnet Geräte, die folgendermaßen benannt und zugeordnet sind:
Gerätename zugeordnete Systemdatei PRINTER01 - PRINTER99 SYSLST01 - SYSLST99 SYSIPT SYSIPT SYSOPT SYSOPT Mit PRINTER oder herstellername-1 zugewiesene Dateien dürfen keine externen Dateien sein.
Für sequenzielle, relative und indizierte Dateiorganisation gilt:
literal-1, literal-2 müssen alphanumerische Literale sein und dürfen keine figurative Konstante sein. datenname-1 muss alphanumerisch sein.
literal-1, literal-2 oder der Inhalt von datenname-1 geben den Linknamen für die Datei an.
Bei Angabe eines Literals wird der Linkname aus den ersten 8 Zeichen gebildet. Diese müssen innerhalb des Programms eindeutig sein. Ist das letzte Zeichen der so gebildeten Linknamen ein Bindestrich (-), so wird dieser durch ein #-Zeichen ersetzt.
datenname-1 darf nicht gekennzeichnet sein.
datenname-1 muss als alphanumerisches Datenfeld in der WORKING-STORAGE SECTION, LOCAL-STORAGE SECTION oder LINKAGE SECTION definiert sein.
Für Sortierdateien gilt:
herstellername ist DISC
literal ist SORTWK.
Allgemeine Regeln
Die Dateiorganisation muss in der ORGANIZATION-Klausel angegeben werden (siehe "ORGANIZATION-Klausel ").
In der ASSIGN-Klausel wird nur der erste Eintrag analysiert, alle weiteren Einträge werden ignoriert (PRINTER literal-1 ist ein Eintrag).
Bezieht sich die ASSIGN-Klausel auf eine externe Datei, muss in allen Programmen, die diese externe Datei beschreiben, die ASSIGN-Klausel in der gleichen Form verwendet werden. Der Inhalt des Literals bzw. des Datennamens kann dagegen unterschiedlich sein.