■  入力ファイルをコンバートするする方法


その1(ただのコピー)

//SORT1EXECSORT 
//SORTINDDDSN=INFILE,DISP=SHR 
//SORTOUTDDDSN=…,DISP=(,KEEP),… 
//SYSINDD* 
 OPTION  COPY 
 OUTFIL FNAMES=SORTOUT,
  OUTREC FIELDS=(11,30)
/*   
   INPUTの11から30バイトをコピー



その2(複雑なコンバート)

//SORT2EXECSORT  
//SORTINDD*  
AAAAAAAAAABBBBBBBBBB
/*    
//SORTOUTDDDSN=OUTFILE,DISP=(,KEEP),…  
//SYSINDD*  
 OPTION COPY,VLSHRT
 OUTFIL FNAMES=SORTOUT,
 INCLUDE=(1,2,CH,EQ,C'01'),
 OUTREC=(21,20,C'@',3,3,PD,EDIT=(TTT),LENGTH=3,C'@',1,2,
 6,5,PD,EDIT=(TTTTTTT),LENGTH=7,C' 19890501 19981030',60:10,11,80:X)
/* 
  このサンプルは、
  • INPUTの21〜40バイトをOUTPUTの1〜20バイトへ、
  • '@'をOUTPUTの21バイト目へ、
  • INPUTの3〜5バイトのPackの下3桁をキャラクターに編集してをOUTPUTの22〜25バイトへ、
  • '@'をOUTPUTの26バイト目へ、
  • INPUTの1〜2バイトをOUTPUTの26〜27バイトへ、
  • INPUTの6〜10バイトのPackの下7桁をキャラクターに編集してをOUTPUTの28〜34バイトへ、
  • ' 19890501 19981030'をOUTPUTの35〜53バイト目へ、
  • INPUTの10〜20バイトをOUTPUTの60〜71バイトへ、
  • 上記以外はスペース をセットするロジックです。

    VLSHRTは比較するポジションがセグメント長を越える場合、そのセグメントを無視する指定。
    OUTFILオプションで有効。通常のINCLUDE CONDステートメントでは指定より短いレコードがある場合ABENDします。



  • その3(スペース・Nullをセット)

    ;
    //SORT3EXECSORT 
    //SORTINDD* 
    AAAAAAAAAA
    /*    
    //SORTOUTDDDSN=OUTFILE,DISP=(,KEEP),… 
    //SYSINDD* 
     OPTION COPY
     OUTFIL FNAMES=SORTOUT,
     OUTREC=(1,5,5X,5Z)
    /*   
      このサンプルは、
  • INPUTの1〜5バイトをOUTPUTの1〜5バイトへ、
  • スペース5桁をOUTPUTの6〜10バイト目へ、
  • NULL5桁をOUTPUTの11〜15バイトへ、 をセットするロジックです。


  • その1では「OUTREC FIELDS=」、その2・その3では、「OUTREC=」であることに注意!


    BEFORE PAGE

    TOP PAGE