PDA

View Full Version : Free-RPG



Gimli
03-03-03, 08:29
Hallo an Alle,

ich mache grade meine ersten Gehversuche in Free-RPG und bin dabei auf eine Frage gestossen:
wie schreibt man den Befehl "move" oder "movel" in free-rpg ?
ich habe den Befehl folgendermassen geschrieben:
/free
move felda feldb
/end-free
felda = charakter
feldb = dezimal
das akzeptiert der Converter aber nicht und meldet: Für die Operation EVAL wird ein Zuordnungsoperator erwartet.
Wer kann mir bitte bei der Syntax für diese Befehle helfen ?
Wir haben OS400 V5R2M0 im Einsatz.

Bin für jeden Tipp dankbar.

Liebe Grüße, Marc

[Dieser Beitrag wurde von Gimli am 03. März 2003 editiert.]

malzusrex
03-03-03, 09:08
hallo marc

ist eigentlich einfach

/free

eval feldb = felda;
evalr feldb = felda;

/end-free

bei der eval-operation kannst du eval auch weg lassen

/free
feldb= felda;
/end-free

zur not hätte ich da noch das rpg-handbuch als pdf-file (ca. 3,5 mb)

tschau
ronald

Gimli
03-03-03, 10:06
Hallo Ronald,

danke für Deine schnelle Antwort, leider ist das Problem nicht ganz so einfach. Felda ist ein charakter-Feld und Feldb ein dezimal-Feld. Daher funktioniert der eval nicht.
Aus diesem Grund versuche ich ja den move.

jo400
03-03-03, 10:15
Hallo Marc,

soviel ich weiß (ich habe leider noch kein V5) wird MOVE im Free-Format nicht unterstützt.

Zur Umwandlung von Charakter-Werten in Numerische-Werte gibt es aber seit V5R2 die neue Funktion %DEC. Umgekehrt geht es mit der Funktion %INT.

Ich hoffe das hilft dir weiter.

Jo

B.Hauser
03-03-03, 10:19
Hallo,

zuerst einmal, MOVE, MOVEL und MOVEA wird es in RPG Free Format NICHT geben.

EVAL/EVALR kann nur für gleiche oder compatible Datentypen verwendet werden.

Für die Umsetzung von numerisch nach alpha können folgende Built-In-Funktionen verwendet werden:
%Char(), %EditC(), %EditW()

Die Umsetzung von alpha nach numerisch ist erst ab Release V5R2M0 mit folgenden Built-In-Funktionen möglich:
%Dec()/%DecH(), %Int()/%IntH(), %Uns()/%UnsH()
Werden ungültige Werte übertragen wird der Status 105 ausgegeben.
Kann über Built-In-Funktion %Status oder ON-Error in einer Monitor-Group abgefragt werden.

Ansonsten hast Du noch die Möglichkeit mit Datenstrukturen zu arbeiten, d.h. das alpha-Feld überlagert das numerische Feld.

Birgitta

malzusrex
03-03-03, 10:20
ups, wieder nur die hälfte gelesen. dann muss es heißen

/free
eval felda = %char(feldb);
/end-free

um nur ein beispiel zu nennen

ronald

[Dieser Beitrag wurde von malzusrex am 03. März 2003 editiert.]

Gimli
03-03-03, 10:23
Danke an Euch beiden :-)

Die %dec Funktion hat mir geholfen.