とあるSEの色々ブログ

プログラミングで全ての人を幸せに。プログラミングとITと転職と雑記と備忘録

AS400

【RPG4】EVAL

投稿日:

RPG4から追加されたEVALという命令を紹介します。
RPG3では代入処理は、文字型の場合はMOVE、数値型の場合はZ-ADD
を使用していたと思いますが
RPG4ではMOVEやZ-ADDは非推奨です。
フリーフォーマットでは使えません。
代わりにEVALという命令が追加されています。
項目の型に関わらず、代入の場合はEVALが使用出来ます。

では、使用例を見ていきましょう。

例えば、こんな変数があったとします。
EVAL 変数 = 値

という形で記述します。
DSPLYで結果を見てみましょう
こんな感じで、代入されています。
EVALは、左詰めですね。
右詰めするためのEVALRという命令もあります。
使い方は同じで、右詰めで代入されます。
こんな感じですね。
先頭5桁が空白で、末尾5桁に代入されています。
数値でも使用可能です。
また、EVALは省略も可能です。
EVALを書かずに ○○ = ××という記載が出来ます。
より直観的に書けますね。

EVAL-CORR DS単位の代入

さらに便利な命令でEVAL-CORRというものがあります。
これはDS単位の代入に使用できる命令で、前提としてお互いのDSの型や桁、項目名が同じでないといけませんが、便利に使えます。
イメージとしては、RPG3の桁位置指定の記述のDSのような使い方が可能です。

例えばこんなDS定義があったとします。
同じ構成のDSをもう一つ作成します。
LIKEDSで、宣言済みのDSの定義を流用しています。
EVAL-CORRでDS単位で代入ができます。
DSPLYで結果を確認しましょう。
DSPLY (123456789)

DSPLY (12)

DSPLY (345)

DSPLY (6789)

まとめて代入されていて、個別のアクセスも可能です。
キーの退避をする際に便利ですね。

-AS400

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

CHGPFについて

とある会社でSEをやってます。 そこでは基幹システムでAS400を使ってますのでネットを探してもあまりでてこないAS400情報も書いていこうと思います。 CHGPF たまに物理ファイルのデータを残した …

ライブラリ単位の一括文字列検索

AS400で文字列を検索する際に、ソース毎に行うのは大変ですよね。 色々な分析やソース解析、影響範囲を調べることが各種システム修正を行う際には発生します。 そのような調査を行うツールが導入されていれば …

デバッグの勧め STRISDB

RPG3のデバッグが出来る「STRISDB」の操作方法を記載します。自分への備忘録&迷えるAS/400ビギナーの方の参考になれば幸いです。 対象:自分、AS/400ビギナーの方、もしくはSTRISDB …

RPG4のススメ

色んなベンダーさんからお話を伺うと、AS/400を使用している企業ではRPG3がまだ一番多いようです。RPG3の固定形式でのコーディングは、オープン系の開発に慣れている若い方にはなかなか馴染みづらい、 …

ユーザー定義コマンド作成方法

コマンドの入力文字数を減らしたい visual studioや他の豪華なIDEとかでは、インテリセンスという入力補完の機能があったりしますが、AS400のコーディングや保守を行うエミュレーターにはそん …