Hallo *all,

ich habe Folgendes:
Code:
     c                   if        digits = 1     c                   eval      AFeld1 =  %subst($$_Var:1:byteleng)
     c                   eval      pointer = %addr(AFeld1)
     c                   elseif    digits = 2
     c                   eval      AFeld2 =  %subst($$_Var:1:byteleng)
     c                   eval      pointer = %addr(AFeld2)

     c                   elseif    digits = 3
     c                   eval      AFeld3 =  %subst($$_Var:1:byteleng)
     c                   eval      pointer = %addr(AFeld3      
           .... 

     c                   elseif    digits = N
     c                   eval      AFeldN =  %subst($$_Var:1:byteleng)
     c                   eval      pointer = %addr(AFeldN)

     c                   endif
Dabei ist mein Problem, dass AFeld1-N auch immer in seiner Länge um 1 wächst.
Gibt es eine Möglichkeit dies trotzdem als Schleife zu fassen?
Während des Tippens kam mir folgende Idee:
Code:
     D Index           s              2S 0 inz(1)
     D AFeld           S             63A   dim(63) varying
      /free
           for Index = 1 by 1 to 63;
            %len(AFeld(Index)) = Index;
            AFeld(Index) = %subst($$_Var:1:byteleng);
            pointer = %addr(AFeld(Index));
           endfor;
Würde das gefahrlos funktionieren?