■ パックからキャラクターへ変換する方法
OUTREC指定でEDITパターンを設定すればできます。
(EDITマスクパターンの詳細はDFSORTのマニュアル(P.261)を
参照してください)。
//SORT1 EXEC SORT //SORTIN DD DSN=INFILE,DISP=SHR //SORTOUT DD DSN=OUTFILE,DISP=(,KEEP),… //SYSIN DD * OPTION COPY OUTFIL FNAMES=SORTOUT,CONVERT, OUTREC=(1,2, ←1~2バイトをそのまま出力 3,3,PD,EDIT=(TTTTT),LENGTH=5, ←3~5バイト目のパックをキャラクターに変換して出力 6,5,PD,EDIT=(TTTTTTTTT),LENGTH=9) ←6~10バイト目のパックをキャラクターに変換して出力 /* ※先行ゼロをブランクにするなら、EDITのマスクにIを指定します。
(上記の例)
OUTREC=(1,2,
3,3,PD,EDIT=(IIIIT),LENGTH=5,
6,5,PD,EDIT=(IIIIIIIIT),LENGTH=9)
※編集文字を指定したり、リテラルを挿入したりもできます。
(上記の例)
OUTREC=(1,2,
C'*', ←リテラル
3,3,PD,EDIT=(TTTTT),LENGTH=5,
C'#', ←リテラル
6,5,PD,EDIT=(T-TTTTTTTT),LENGTH=10) ←ハイフン編集
※出力するデータのトータルレングスがSORTOUTのDCBで指定したレングスと違う 場合はABENDします(U0222)。
xxx BYTE FIXED RECORD LENGTH IS NOT EQUAL TO zzz BYTE LRECL FOR SORTOUT
上記の方法を応用するとホストファイルからCSVファイルを簡単に作成することができます。
サンプルはこちらです。