Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

ANY LENGTH-Klausel

&pagelevel(4)&pagelevel

Funktion

Die ANY LENGTH-Klausel bewirkt, dass die Länge eines formalen Parameters einer Methode durch die Länge des Argumentes bestimmt wird.

Format


ANY LENGTH


Syntaxregeln

  1. Die ANY LENGTH-Klausel darf nur in Datenerklärungen mit der Stufennummer 01 oder 77 in der LINKAGE SECTION einer Methode angegeben werden.

  2. Die Datenerklärung muss eine PICTURE-Klausel enthalten, deren Maskenzeichenfolge aus einem einzelnen "X" oder "N" besteht.

Allgemeine Regeln

  1. Durch die ANY LENGTH-Klausel wird das Datenelement als variabel lang definiert. Die aktuelle Länge des Datenelementes entspricht der Länge des Argumentes bzw. Rückgabeelementes des Aufrufers.

  2. Ist das dem Datenelement entsprechende Argument bzw. Rückgabeelement des Aufrufers ein null-längiges Datenfeld, so ist auch das Datenelement ein null-längiges Datenfeld.

Beispiel 7-3

METHOD-ID. SEARCH-CHAR.
DATA DIVISION.
LINKAGE SECTION.
01    PAR1    PIC X ANY LENGTH.
01    PAR2    PIC X.
01    IDX     PIC 9(9) USAGE COMP-5.
PROCEDURE DIVISION USING PAR1 PAR2 RETURNING IDX.
  PERFORM VARYING IDX FROM 1 BY 1 UNTIL IDX > FUNCTION LENGTH(PAR1)
    IF PAR1(IDX:1) = PAR2
        EXIT METHOD           *> Zeichen gefunden ---->>>>
     END-IF
  END-PERFORM
  MOVE 0 TO IDX.            *> Zeichen nicht gefunden
  EXIT METHOD.
END METHOD SEARCH-CHAR.

Ausschnitt eines Programms, aus dem die Methode SEARCH-CHAR aufgerufen wird:

...
01 OBJ      USAGE IS OBJECT REFERENCE.
01 I        PIC 9(9) USAGE IS COMP-5.
01 F1       PIC x(50).
01 F2
   02 ELEM  OCCURS 100 DEPENDING ON I.
...
INVOKE OBJ "SEARCH-CHAR" USING F1,"X" RETURNING I. ———————————— (1)
INVOKE OBJ "SEARCH-CHAR" USING F2,"Y" RETURNING I. ———————————— (2)
...
(1)

Die aktuelle Länge des Parameters PAR1 beträgt 50. Die Länge muss vom Anwender nicht übergeben werden.

(2)Die aktuelle Länge des Parameters PAR1 ist erst dynamisch zur Ablaufzeit bekannt.

Änderungen des RETURNING-Parameters IDX in der Methode SEARCH-VAR wirken sich auf die Länge des aktuellen Parameters F2 erst nach Rückkehr aus der Methode SEARCH-CHAR aus.

Die unterschiedliche Länge der aktuellen Parameter F1 bzw. F2 stellt wegen der ANY LENGTH-Klausel keinen Verstoß gegen Conformance-Regeln dar.