H DFTNAME(TESTRTVFD) DATEDIT(*YMD/) F******** ファイル記述の検索 ****************************************** F* F***************************************************************** /COPY QSYSINC/QRPGLESRC,QDFRTVFD D PTR S * D FORMAT S 8A D LEN S 10I 0 D FMTSIZ S 10I 0 D FORPTR S * D FORPTR2 S * D FMTBUF S 20A VARYING DIM(32767) D BASED(FMTPTR) D QDFFBASE2 DS LIKEDS(QDFFBASE) D BASED(FMTPTR) D DSPFFLIB DS D DSPF 1 10A D DSPFLIB 11 20A D APIERR DS D GETBYT 1 4B 0 INZ(116) D AVLBYT 5 8B 0 INZ(0) D MSGID 9 15 D ECP 16 16 D MSGDTA 17 116 C MOVEL(P) 'SMP106FM ' DSPF C MOVEL(P) 'QTROBJ ' DSPFLIB C EVAL LEN = %SIZE(QDFFBASE) C*----------------------------------------------------+ C CALL 'QDFRTVFD' |bゥワq゙b 表示 C PARM QDFFBASE | C PARM LEN | C PARM 'DSPF0100' FORMAT | C PARM DSPFFLIB | C PARM APIERR | C*----------------------------------------------------+ C AVLBYT IFNE *ZEROS C 'MSGID(1)=' CAT(P) MSGID:0 DSP40 40 C DSP40 DSPLY ANS 1 C GOTO END C ENDIF C*( 必要な長さ QDFFSIZE を取得した ) C EVAL FMTSIZ = QDFFSIZE C* 動的メモリ割り振り C ALLOC FMTSIZ FMTPTR C*----------------------------------------------------+ C CALL 'QDFRTVFD' |bゥワq゙b 表示 C PARM FMTBUF | C PARM FMTSIZ | C PARM 'DSPF0100' FORMAT | C PARM DSPFFLIB | C PARM APIERR | C*----------------------------------------------------+ C AVLBYT IFNE *ZEROS C 'MSGID(2)=' CAT(P) MSGID:0 DSP40 40 C DSP40 DSPLY ANS 1 C DEALLOC FMTPTR C GOTO END C ENDIF C* 取得した長さを調べて表示する C EVAL LEN = QDFFBASE2.QDFFRETN C Z-ADD LEN DEC08 8 0 C MOVE DEC08 FLD8 8 C DOW %SUBST(FLD8:1:1) = '0' C EVAL FLD8 = %SUBST(FLD8:2:7) C ENDDO C ' 長さ =' CAT(P) FLD8:0 DSP40 40 C CAT ' バイト ':0 DSP40 C DSP40 DSPLY ANS 1 C* 動的メモリ解放 C DEALLOC FMTPTR C END TAG C '* EOJ *' DSPLY ANS 1 C SETON LR C RETURN