Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

COBOL-Sprachmittel

COBOL-Programme können Systemdateien dazu verwenden, kleine Datenmengen (z.B. Steueranweisungen) einzulesen oder auszugeben. Den Zugriff auf Systemdateien und den Bedienplatz unterstützt COBOL2000 durch folgende Sprachmittel (siehe Handbuch „COBOL2000-Sprachbeschreibung“ [1]):

  • Die Vereinbarung programminterner Merknamen für Systemdateien im SPECIAL-NAMES-Paragrafen der ENVIRONMENT DIVISION:
    Über diese Merknamen können sich Anweisungen der PROCEDURE DIVISION auf die zugeordneten Systemdateien beziehen (siehe unten). Es können unter anderem Merknamen vereinbart werden

    • für die Eingabedateien

      SYSDTA

      SYSIPT

      mit TERMINAL IS merkname

      mit SYSIPT IS merkname

    • für die Ausgabedateien

      SYSOUT

      SYSLST

      SYSLSTnn

      SYSOPT

      mit TERMINAL IS merkname

      mit PRINTER IS merkname

      mit PRINTERnn IS merkname (nn = 01...99)

      mit th SYSOPT IS merkname

  • Die Anweisungen ACCEPT, DISPLAY und STOP literal der PROCEDURE DIVISION:

    Sie greifen auf Systemdateien bzw. auf den Bedienplatz zu, wobei im einzelnen gilt:
    • ACCEPT...FROM merkname

      liest aus der (im SPECIAL-NAMES-Paragrafen) mit merkname verknüpften Eingabedatei.

      Die Daten werden dabei linksbündig in der Länge des Empfangsfeldes der ACCEPT-Anweisung übertragen:
      Ist das Feld länger als der zu übertragende Wert, wird es am rechten Ende mit Leerzeichen aufgefüllt; ist es kürzer, wird der Wert bei der Übertragung rechts auf die Feldlänge abgeschnitten.

      Hat die Eingabedatei das Satzformat F (Sätze fester Länge, siehe Abschnitt „Systemdateien: Primärzuweisungen, Umweisungen, Satzformate"), so gilt außerdem:Ist die Länge des Empfangsfeldes der ACCEPT-Anweisung größer als die logische Satzlänge der Systemdatei, werden automatisch Daten nachgefordert, d.h. weitere Leseoperationen (Makroaufrufe) veranlasst.

      Erkennt das Programm beim Lesen der Systemdatei das Dateiende, gibt es die Meldung COB9121 bzw. COB9122 aus.
      Abhängig vom COMOPT-Operanden CONTINUE-AFTER-MESSAGE bzw. ERROR-REACTION in der RUNTIME-OPTIONS-Option (SDF) wird der Programmablauf anschließend fortgesetzt (Voreinstellung) oder beendet.

      Bei Fortsetzung des Programmablaufs wird im Empfangsfeld auf den ersten zwei Positionen die Zeichenfolge „/*“ abgelegt (bzw. „/“, wenn das Empfangsfeld nur 1 Zeichen lang ist) und mit der auf ACCEPT folgenden Anweisung fortgefahren.

    • ACCEPT (ohne FROM-Angabe)

      liest standardmäßig aus der Systemeingabedatei SYSIPT.

      Mit COMOPT REDIRECT-ACCEPT-DISPLAY=YES bzw.

      ACCEPT-DISPLAY-ASSGN=*TERMINAL in der SDF-Option RUNTIME-OPTIONS kann auf die Systemdatei SYSDTA umgewiesen werden.

    • DISPLAY...UPON merkname

      schreibt in die (im SPECIAL-NAMES-Paragrafen) mit merkname verknüpfte Ausgabedatei.

      Die Daten werden dabei in der Länge der Sendefelder bzw. Literale der DISPLAY-Anweisung übertragen.
      Ist die Gesamtzahl der zu übertragenden Zeichen größer als die maximale Satzlänge der Ausgabedatei (siehe Tabelle 14 im Abschnitt „Systemdateien: Primärzuweisungen, Umweisungen, Satzformate"), werden solange zusätzliche Datensätze ausgegeben, bis alle Zeichen übertragen sind; ist sie bei Dateien mit Sätzen fester Länge kleiner als die Satzlänge, werden die Datensätze am rechten Ende mit Leerzeichen aufgefüllt.

    • DISPLAY (ohne UPON-Angabe)

      schreibt standardmäßig in die Systemausgabedatei SYSLST.

      Mit COMOPT REDIRECT-ACCEPT-DISPLAY=YES bzw.
      ACCEPT-DISPLAY-ASSGN=*TERMINAL in der SDF-Option RUNTIME-OPTIONS kann auf die Systemdatei SYSOUT umgewiesen werden.

    • STOP literal

      gibt ein (maximal 122 Zeichen langes) Literal auf dem Bedienplatz aus.

    Beispiel 8-1

Zugriff auf eine Systemdatei über einen vereinbarten Merknamen

IDENTIFICATION DIVISION.
    ...
ENVIRONMENT DIVISION. 
CONFIGURATION SECTION.
    ...
SPECIAL-NAMES.
    SYSIPT IS SYS-EINGABE —————————————————————————————————————————————(1) 

    ...
PROCEDURE DIVISION.
     ...
     ACCEPT STEUER-FELD FROM SYS-EINGABE.——————————————————————————————(2) 

     ...

(1)

Für die Systemdatei SYSIPT wird der programminterne Merkname SYS-EINGABE vereinbart.

(2)

ACCEPT liest (über den Merknamen SYS-EINGABE) aus SYSIPT einen Wert in das Feld STEUER-FELD.