タイガー!タイガー!じれったいぞー!(SE編)

AS400, Java, JavaEE, JSF等の開発、習慣など。日々の気づきをまとめたブログ(備忘録)

英小文字によるコーディング方法

概要

  • RPGLEでのコーディングを、より他の言語に近づけて違和感を無くしたい! そう考えますと、アルファベット小文字を使ってコーディングしたくなってくるというものです。

操作手順

(1)P-COMMセッションの設定
  • ホスト・コードページを、「939:日本語英数小文字拡張」に設定します。

f:id:no14141:20130904201126j:plain

(2)サインオンしたJOBのCCSIDを変更

CHGJOB CCSID(5035)

 ※CCSIDとは? こちらのサイトがわかりやすいです。
 株式会社アクセル様 - CCSID説明のサイト
(3)CCSID5035のソースPFの作成

CRTSRCPFにて

CRTSRCPF  FILE(TIGER/RPGLESRC2)  RCDLEN(112)  IGCDTA(*YES)
          TEXT('英小文字可能ソースPF') CCSID(5035)
(4)ソースの作成
STRSEU等で作成
STRSEU SRCFILE(TIGER/RPGLESRC2) SRCMBR(KOMOJITEST) TYPE(RPGLE)
  • 英語小文字を入力したい場合、「Ctrl」+「F3」キーを打鍵し、入力する。
  • 変数名は、大文字、小文字は同一文字として認識されるので注意。(変数ABCとabcは同じ変数とみなされます)
TIGER/RPGLESRC2 KOMOJITEST
H datEdit(*YMD/)
H*
D**********************************************************************
D*Main-Line
D**********************************************************************
/free
// 表示テスト
dsply (' 全角 :' + ' あいうえお123漢字 ') ;
dsply (' 数字 :' + '0123456789') ;
dsply (' 英大 :' + 'ABCDEFGHIJKLMN') ;
dsply (' 英小 :' + 'abcdefghijklmn') ;
dsply (' カナ :' + 'アイウエオカキクケコサシスセソ') ;
 
*inLR = *on ;
return ;
/end-free

動作確認

CCSID=5035のJOBにて
> CALL PGM(TIGEROBJ/KOMOJITEST)
  DSPLY   全角 : あいうえお123漢字
  DSPLY   数字 :0123456789
  DSPLY   英大 :ABCDEFGHIJKLMN
  DSPLY   英小 :abcdefghijklmn
  DSPLY   カナ :アイウエオカキクケコサシスセソ
CCSID=5026のJOBにて
> CALL PGM(TIGEROBJ/KOMOJITEST)
  DSPLY   全角 : あいうえお123漢字
  DSPLY   数字 :0123456789
  DSPLY   英大 :ABCDEFGHIJKLMN
  DSPLY   英小 :アイウエオカキクケタチツテト
  DSPLY   カナ :                  ←表示されない。
 
  さらに、「Ctrl」+「F3」で、表示切替をすると・・・

  DSPLY   全角 : あいうえお123漢字
  DSPLY   数字 :0123456789
  DSPLY   英大 :ABCDEFGHIJKLMN
  DSPLY   英小 :abcdefghijklmn
  DSPLY   カナ :アイウエオカキクケコサシスセソ

所感

  • ソースのSSCIDと、ユーザーのCCSIDは同じにしないと、出力する文字が正しく表示されなかったり、文字化けしたりと不都合が生じます。(CCSIDのカタカナと英小文字の配列が、全く逆になっているからだそう。)
  • やはり、ソースとユーザーのCCSIDは、特別な理由がない限り、同じにしておいたほうが無難でしょう。