View Full Version : Mehrere Bezugszahlen auf *off in Free RPG
Hallo,
im RPG/400 konnte ich mit der Anweisung
movea *all'0' *in(50)
alle Bezugszahlen >=50 mit einer Anweisung auf 0 setzen.
Wie geht so etwas im Freeformat.
DANKE und Gruß
Leider gar nicht mehr ohne komplizierte Definitionen.
Man kann sich nun *IN-Arrays in einer DS definieren, durch Überlagerung (Overlay) entsprechende Bereiche definieren, die ich dann mit *zero füllen kann.
RobertMack
15-02-06, 17:12
50 DO 99 I
EVAL *IN(I) = *OFF
ENDDO
geht das so? bin in free format nicht so fit ;-)
Im Free siehts etwas anders aus, wenn man eine Schelife nimmt:
for Ind=50 to 99;
*in(Ind)=*off;
endfor;
Allerdings ist das nicht vergleichbar mit dem MOVEA.
RobertMack
15-02-06, 17:21
Danke!
Allerdings ist das nicht vergleichbar mit dem MOVEA.
... und das ist auch gut so, den hat man schnell mal übersehen ;-)
Außerdem ist zu beachten, dass das Feld "ind" als 3 0 Feld deklariert werden muß, da es am ende der schleife den wert 100 hat. ;:)
DAS setzt man natürlich mal voraus.
Allerdings sind Variablen mit 5I0 oder 10I0 (also Binär 2/4) schneller in der Verarbeitung.
früher konnte man ebenfalls mit
movea *in(61) bez5
if bez5 = *all'1'
mehrere in einer reihe liegende bezugszahlen abfragen. heute geht das leider auch nur in der schleife oder mit
if *in61 and *in62 and *in63......
finde ich lästig!
RobertMack
16-02-06, 10:44
if *in61 and *in62 and *in63......
Nun ja, wäre ...
IF ZUSTAND = *OFF AND LESBAR = *ON AND SPRECHEND = *ON
... nicht sowieso besser?
Und dann ist bez5 plötzlich anders definiert und schon knallt's !
Da finde ich sprechende Lösungen schon besser, zumal es nicht an der Performance sondern an der Schreibfaulheit liegt.
Man kann ja auch
bez5 = *in61 + *in62 + *in63 ...;
if bez5 = '11111';
verwenden ;)