5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ILERPGAdvent Calendar 2024

Day 13

部分FF RPG(C仕様書だけ)にシュッとトライしてみよう

Last updated at Posted at 2024-12-12

前置き:raised_hand:

  • 「C仕様書だけFF RPGで書くことが多いです」というお声を聞き、私も完全FFでなく、部分FFをやってみようと思い立った次第です
  • 尚、かなり初歩的なところで躓きました
  • これも学び、ということでこちらの記事に残したいと思います

RPGⅢからILE RPGにしてみよう

  • CVTRPGSRCコマンドの前に、変換ログ取得用のファイルを準備する
CPYF  FROMFILE(QRPGLE/QARNCVTLG)  TOFILE(KOINULIB/QRNCVTLG) 
      MBROPT(*REPLACE)  CRTFILE(*YES)
  • CVTRPGSRCでRPGⅢをQRPGSRC(RPGⅢ)→QRPGLESRC(ILE RPG)に変換する
CVTRPGSRC FROMFILE(KOINULIB/QRPGSRC) FROMMBR(*ALL) TOFILE(KOINULIB/QRPGLES
RC) LOGFILE(KOINULIB/QRNCVTLG)                                                  

RDiでFF RPGに変換してみよう

  • C仕様書部分だけソースを選択、右クリック、選択をフリー・フォームに変換をクリック(画像は変換済)
    • image.png
  • 一部C仕様書が残ったままになるので、その部分にFF RPGへコーディングする
    • 今回試したソースでは以下の部分を手動で変更しました
      • 帳票オーバーフローのフラグオンオフ

        • Before
         //頁変えの確認
         C   OF              EXCEPT    MIDASI
         C   OF              SETOFF                                       OF
        
        • After
        //頁変えの確認
          IF *INOF  = *ON;
            EXCEPT MIDASI;
            *INOF  = *OFF;
          ENDIF;          
        
      • 四則演算

        • Before
         C     TKGEND        SUB       TKUZAN        WKRIYO            9 0
        
        • After
        DCL-S  WKRIYO ZONED(9:0); 
        WKRIYO = TKGEND - TKUZAN; 
        

SEUとRDiとVS Codeでコーディングしながらコンパイルエラーを解消してみた

  • いつもよりコンパイルエラーを出していました(開発時代なら怒られそうなくらいに…:relaxed:
  • 共通しておきていたエラーの理由は、「私は部分Free Form RPGを書いている」という自覚が少なかったことです

コンパイルエラーによる気づき、躓きポイント

  • 部分 FF RPGはあくまで、ILE RPGであることを意識しないといけないという点
  • 各定義H→F→D→Cの徹底をすっかり忘れていた
    • FF RPGに徐々に慣れていると、C仕様書(演算仕様書)の途中でDCL-S等の定義仕様書を書きたくなる…
  • 桁の始まりミスが多かった(C仕様書は8桁目からです)

3つの開発ツール、開発環境を使ってどのように感じたか

  • SEUに慣れていたとしても、「やっぱりRDiいいなあ」の一言に尽きます
  • コンパイル前に上記のDCL-Sのポジションミスを教えてくれました
    • image.png
  • エラー箇所にカーソルを合わせ、内容を確認(今回は2行目が原因)
    • image.png
  • SEUでもVS Code(Code for IBM i)でも現在はここまで丁寧にエラーチェックはされないので、この点はかなりRPG開発者に寄り添っているというか、改めてRPG開発に特化されているという印象を受けました

おわりに

  • 初歩的なところで躓いてしまいましたが、部分も完全も使いこなしていけるように精進いたします!

参照サイト&記事リンク(素敵な記事)

5
0
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?