H DFTNAME(TESTSORTC) DATEDIT(*YMD/) H DFTACTGRP(*NO) BNDDIR('QC2LE') F********** SORTのサンプル **************************************** F* QSORT による SORT F***************************************************************** D COMPARE PR 10I 0 D FLDA * VALUE D FLDB * VALUE D QSORT PR EXTPROC('ヌヘナネホ') D ARRAY * VALUE D ITEMSU 10I 0 VALUE D SIZE 10I 0 VALUE D COMPARE * VALUE PROCPTR D CDR S 4 DIM(3) CTDATA PERRCD(1) 見出し D NMR S 14 DIM(3) CTDATA PERRCD(1) 見出し D STR S 18 DIM(3) 見出し C MOVEL CDR STR C MOVE NMR STR C* SORT 前のデータの表示 C 1 DO 3 N 4 0 C STR(N) DSPLY C END C '*END OF DATA'DSPLY ANS 1 C* C* QSORT によって昇順に並べる C CALLP QSORT(%ADDR(STR):3:18:%PADDR(COMPARE)) C* C 1 DO 3 N 4 0 C STR(N) DSPLY C END C '*END OF SORT'DSPLY ANS 1 C SETON LR ********************************************************* P COMPARE B ********************************************************* D PI 10I 0 D FLDAP * VALUE D FLDBP * VALUE D FLDA S 18A BASED(FLDAP) 見出し D FLDB S 18A BASED(FLDBP) 見出し C SELECT C WHEN FLDA > FLDB C RETURN 1 C WHEN FLDA < FLDB C RETURN -1 C OTHER C RETURN 0 C ENDSL P E ** CDR 0002 0001 0003 ** NMR ビデオデッキ カラーTV コンボ