Anmelden

View Full Version : Mehrere Bezugszahlen auf *off in Free RPG



Seiten : [1] 2

mgraskamp
15-02-06, 13:47
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ß

Fuerchau
15-02-06, 16:15
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 ;-)

Fuerchau
15-02-06, 17:16
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 ;-)

mgraskamp
16-02-06, 07:26
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. ;:)

Fuerchau
16-02-06, 09:46
DAS setzt man natürlich mal voraus.
Allerdings sind Variablen mit 5I0 oder 10I0 (also Binär 2/4) schneller in der Verarbeitung.

mgraskamp
16-02-06, 10:31
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?

Fuerchau
16-02-06, 11:14
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 ;)