ID #1189

英小文字の大文字変換

英小文字を大文字に変換します。

 
                      英小文字の大文字(CVTLWUP)                     
                                                                                
  選択項目を入力して,実行キーを押してください。                                
                                                                                
  ソースファイル  . . . . . . . .                  名前                         
    ライブラリー  . . . . . . . .     *LIBL        名前 , *LIBL, *CURLIB        
  メンバー  . . . . . . . . . . .                  名前                         
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                         終り   
 F3= 終了    F4=プロンプト   F5= 最新表示    F12= 取消し    F13= この画面の使用法  
 F24= キーの続き                                                                


<< CMD:CVTLWUP >>
             CMD        PROMPT('英小文字の大文字変換')
             PARM       KWD(SRC) TYPE(SRC) MIN(1) +
                          PROMPT('ソースファイル')
 SRC:        QUAL       TYPE(*NAME) LEN(10)
             QUAL       TYPE(*NAME) LEN(10) DFT(*LIBL) SPCVAL((*LIBL) +
                          (*CURLIB)) PROMPT('ライブラリー')
             PARM       KWD(MBR) TYPE(*NAME) LEN(10)      +
                          PROMPT('メンバー')


<< CLP:CVTLWUPC >>
    PGM        PARM(&OBJ &MBR)

             DCL        VAR(&OBJ)     TYPE(*CHAR) LEN(20)
             DCL        VAR(&LIB)     TYPE(*CHAR) LEN(10)
             DCL        VAR(&OBJ1)    TYPE(*CHAR) LEN(10)
             DCL        VAR(&MBR)     TYPE(*CHAR) LEN(10)

             DCL        VAR(&MSGID)   TYPE(*CHAR) LEN(7)
             DCL        VAR(&MSGDTA)  TYPE(*CHAR) LEN(100)
             DCL        VAR(&MSGF)    TYPE(*CHAR) LEN(10)
             DCL        VAR(&MSGFLIB) TYPE(*CHAR) LEN(10)
             DCL        VAR(&COUNT)   TYPE(*DEC) LEN(2 0)
             DCL        VAR(&MSGSEV)  TYPE(*DEC) LEN(2 0)
             MONMSG     MSGID(CPF0000) EXEC(GOTO CMDLBL(#ERR))

             CHGVAR     VAR(&LIB) VALUE(%SST(&OBJ 11 10))
             CHGVAR     VAR(&OBJ1) VALUE(%SST(&OBJ 1 10))
             CHKOBJ     OBJ(&LIB/&OBJ1) OBJTYPE(*FILE) MBR(&MBR)
    /* ---------------------------------------------------------- */
             OVRDBF     FILE(QSRC) TOFILE(&LIB/&OBJ1) MBR(&MBR)
             CALL       PGM(CVTLWUPR)
             DLTOVR     FILE(*ALL)

    /* ---------------------------------------------------------- */
 #ERR:
             RCVMSG     PGMQ(*SAME) MSGDTA(&MSGDTA) MSGID(&MSGID) +
                          SEV(&MSGSEV) MSGF(&MSGF) SNDMSGFLIB(&MSGFLIB)
             IF         COND((&MSGID ^= ' ') & (&COUNT < 99)) THEN(DO)
             IF         COND((&MSGSEV *GT 00)) +
                          THEN(SNDPGMMSG MSGID(&MSGID) +
                          MSGF(&MSGFLIB/&MSGF) MSGDTA(&MSGDTA) +
                          MSGTYPE(*DIAG))
             CHGVAR     VAR(&COUNT) VALUE(&COUNT +1)
             GOTO      CMDLBL(#ERR)
             ENDDO

 #END:
             RETURN
             ENDPGM


<< RPG:CVTLWUPR >>
     F****************************************************************
     FQSRC    UP  F     268            DISK
     F****************************************************************
     IQSRC    AA  01
     I                                        1  12 SEQ
     I                                       13 268 DATA
     C****************************************************************
     C                     CALL 'CVTLWUP2'
     C                     PARM           DATA
     C                     PARM 256       P#LNGH  30
     C                     PARM ' '       P#RTRN  1
     C*
     C           P#RTRN    IFEQ '1'
     C                     EXCPT@UPD
     C                     END
     C*----------------------------------------------------------
     OQSRC    E                @UPD
     O                         DATA     268


<< RPG:CVTLWUP2 >>
     F****************************************************************
     E                    RCD       256  1
     E                    TAB01  26  26  1   TAB02   1   *文字変換
     I****************************************************************
     IDATA        DS                            256
     I                                        1 256 RCD
     C****************************************************************
     C           *ENTRY    PLIST
     C                     PARM           DATA
     C                     PARM           Y       30
     C                     PARM           SET     1
     C*
     C                     MOVEL*ZEROS    SET
     C                     DO   Y         X       30
     C           RCD,X     LOKUPTAB01     TAB02          90
     C           *IN90     IFEQ '1'
     C                     MOVELTAB02     RCD,X
     C                     MOVEL'1'       SET
     C                     ENDIF
     C                     ENDDO
     C                     RETRN
**  TAB01 :小文字& TAB02 :大文字
aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ

タグ: -

関連エントリー: -

最終更新: 2012-11-17 12:39
製作者:
改訂: 1.0

Digg it! Share on Facebook このレコードを印刷する 友達に教える PDF ファイルで表示する
Propose a translation for Propose a translation for
この FAQ を評価してください:

評価点数: 0 (0 件の投票)

完全に役に立たない 1 2 3 4 5 最も価値がある

このエントリーにコメントできません。