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?
Bookmarks