最初のページに戻ります。

総合の目次があるページに戻ります。

よく使うマニュアルです

Wiki

updated on 2004.06.23

12.16.Q.RPGIIIからRPGIVにするコマンドで、IFとかEVALとかのフォーマットに変換するコマンドは無いですか?

[ Previous ] [ HOME ] [ Upper ] [ Next ]


AS/400のIBM提供コマンドCVTRPGSRCでは、IFやDOが昔のフォーマットのままですよね。300ドルですが、コマンドを提供しているサイトがあります。CVTILEFMTというコマンドです。BVS/Tools - AS/400 Shareware, e-Consulting and More!にあります。使い方は、いったん、CVTRPGSRCで変換したソースを、さらに、CVTILEFMTで変換します。

※ EVAL命令の数字のオーバーフローに気をつけてください。TRUNCNBRを参照してください。(これは、通常のADD,Z-ADDなどの計算もオーバーフローはエラーにする指定でした。紛らわしい....) 当然ですが、いくつかテストしてから、本番環境で使いましょう。

2000-9-23追記

言い忘れましたが、RPGIVは最初の頃に比べ、多くのユーザーの評価を受けて、かなり、使いやすくなってきています。もし、RPGIVを使うなら、最新のものを使いましょう。まだ枯れきっていない言語です。

オリジナル

      C******************************************************            
      C*     DEFINITION  MODULE  ( PLIST   FIELD   KLIST )  *            
      C******************************************************            
      C*                                                    ;            
      C*  DEFINE ENTRY                                      ;            
      C*                                                    ;            
      C           *ENTRY    PLIST                           ;            
      C                     PARM           PILTR 200        ;LETTERS     
      C                     PARM           PILEN   30       ;COMENT      
      C                     PARM           POLTR 200        ;COMENT      
      C******************************************************            
      C*             M A I N -  R O U T I N E                            
      C******************************************************            
      C                     MOVE *BLANK    POLTR            ;            
      C*                                                    ;            
 B001 C           STRLEN    IFGE PILEN                      ;            
  001 C                     MOVELPILTR     POLTR            ;            
 +001 C                     ELSE                            ;            
  001 C           PILEN     SUB  STRLEN    WORK    30       ;            
  001 C           WORK      MULT .5        MGN     30       ;            
  001 C           POLTR     CAT  PILTR:MGN POLTR            ;            
 E001 C                     END                             ;            
      C*                                                    ;            
      C                     MOVE *ON       *INLR            ;            
      C                     RETRN                           ;            

CVTRPGSRCの結果

 C******************************************************                 
 C*     DEFINITION  MODULE  ( PLIST   FIELD   KLIST )  *                 
 C******************************************************                 
 C*                                                    ;                 
 C*  DEFINE ENTRY                                      ;                 
 C*                                                    ;                 
 C     *ENTRY        PLIST                                               
 C                   PARM                    PILTR           200         
 C                   PARM                    PILEN             3 0       
 C                   PARM                    POLTR           200         
 C******************************************************                 
 C*             M A I N -  R O U T I N E                                 
 C******************************************************                 
 C                   MOVE      *BLANK        POLTR                       
 C*                                                    ;                 
 C     STRLEN        IFGE      PILEN                                     
 C                   MOVEL     PILTR         POLTR                       
 C                   ELSE                                                
 C     PILEN         SUB       STRLEN        WORK              3 0       
 C     WORK          MULT      .5            MGN               3 0       
 C     POLTR         CAT       PILTR:MGN     POLTR                       
 C                   END                                                 
 C*                                                    ;                 
 C                   MOVE      *ON           *INLR                       
 C                   RETURN                                              

CVTILEFMTの結果

 C******************************************************                 
 C*     DEFINITION  MODULE  ( PLIST   FIELD   KLIST )  *                 
 C******************************************************                 
 C*                                                    ;                 
 C*  DEFINE ENTRY                                      ;                 
 C*                                                    ;                 
                   
 D MGN             S              3  0                                   
 D PILEN           S              3  0                                   
 D PILTR           S            200                                      
 D POLTR           S            200                                      
 D STRLEN          S              3  0                                   
 D WORK            S              3  0                                   
                                     
 C     *ENTRY        PLIST                                   
 C                   PARM                    PILEN                       
 C                   PARM                    POLTR                       
 C******************************************************                 
 C*             M A I N -  R O U T I N E                                 
 C******************************************************                 
 C                   MOVE      *BLANK        POLTR                       
 C     ' '           CHECKR    PILTR         STRLEN                      
 C*                                                    ;                 
 C                   IF        (STRLEN >= PILEN)                         
 C                   MOVEL     PILTR         POLTR                       
 C                   ELSE                                                
 C                   EVAL      WORK = (PILEN - STRLEN)                   
 C                   EVAL      MGN = (WORK * .5)                         
 C     POLTR         CAT       PILTR:MGN     POLTR                       
 C                   ENDIF                                               
 C*                                                    ;                 
 C                   MOVE      *ON           *INLR                       
 C                   RETURN                                              

2000-9-22


[ Previous ] [ HOME ] [ Upper ] [ Next ]

You are at K's tips-n-kicks of AS/400

 

SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送