|
ソーステキスト太郎 2008-1-18 21:38
[返信] [編集]
私のやっているオフコンのソースをテキスト形式に
変換する方法をお知らせします。
1組目のJS
(JSL名:SU-CNV JSファイル名:AAA-JSL)
/RUN SE&ST0,DEV=MSD,FIL=XXX-LML;
/> ;
/RUN #LBM;
PRD=_MDE=MSD_MFI=&5_ACT=SELECT_ODE=MSD_OFI=F80_NAM=&0_
ODE=_ACT=_DIR=_MDE=_
/> ;
/RUN #FLCNV;
MN=C_MN2=AD_PA1=MSD_PA2=_PA3=F80_PA4=1_PA5=C80_PB1=&4_
PB2=CSV1_PB3=EXCLUSIVE_PB4=COMMA_PB7=C_PB8=CREATE_MN1=Q_
/> ;
2組目のJS
(JSL名:XXXXXX)
/RUN SU-CNV,DEV=MSD,FIL=AAA-JSL,(AAAAA1,D,OC,TXT,,BBB-SUL);
/RUN SU-CNV,DEV=MSD,FIL=AAA-JSL,(AAAAA2,D,OC,TXT,,BBB-SUL);
/RUN SU-CNV,DEV=MSD,FIL=AAA-JSL,(AAAAA3,D,OC,TXT,,BBB-SUL);
/RUN SU-CNV,DEV=MSD,FIL=AAA-JSL,(AAAAA4,D,OC,TXT,,BBB-SUL);
/RUN SU-CNV,DEV=MSD,FIL=AAA-JSL,(AAAAA5,D,OC,TXT,,BBB-SUL);
/RUN SU-CNV,DEV=MSD,FIL=AAA-JSL,(AAAAA6,D,OC,TXT,,BBB-SUL);
上記の2種類のJSを作成し、2組目のJSを実行するとテキスト形式に展開されたソースが
指定された場所に出来上がります。
(説明)
BBB-SUL:変換したいソースが入っているSUL名 AAAAA1〜6:変換したいメンバ名 D :ドライブ名 OC :フォルダ名 TXT:拡張子
1組目のJS内のSE&ST0について
SE&ST0:COBOLでの自作プログラムです
機能:&0,&1,&2,&3より&4を作成します 例:&0=AAAAA1 :&1=D :&2=OC :&3=TXT ↓ :&4=D:\OC\AAAAA1.TXT
自作プログラムを作成したくない場合は、1組目のJSの&部分を取り込んでしまったものを、
複写していただければ、可能です
下記のように
/RUN #LBM;
PRD=_MDE=MSD_MCI=_MFI=BBB-SUL_ACT=SELECT_ODE=MSD_OCI=_OFI=F80-1_
NAM=AAAAA1_ODE=_ACT=_DIR=_MDE=_
/> ;
/RUN #NFCNV,DEV=MSD;
MN1=C_MN2=AD_PA1=MSD_PA2=_PA3=F80-1_PA4=1_PA5=C80_
PB1=D:OCAAAAA1.TXT_PB2=CSV1_PB3=EXCLUSIVE_PB4=COMMA_PB7=C_
PB8=CREATE_MN1=Q_
/> ;
/RUN #LBM;
PRD=_MDE=MSD_MCI=_MFI=BBB-SUL_ACT=SELECT_ODE=MSD_OCI=_OFI=F80-1_
NAM=AAAAA2_ODE=_ACT=_DIR=_MDE=_
/> ;
/RUN #NFCNV,DEV=MSD;
MN1=C_MN2=AD_PA1=MSD_PA2=_PA3=F80-1_PA4=1_PA5=C80_
PB1=D:\OC\AAAAA2.TXT_PB2=CSV1_PB3=EXCLUSIVE_PB4=COMMA_PB7=C_
PB8=CREATE_MN1=Q_
/> ;
ここで、問題になるのが2組目のJSの作り方だと思います。 一般的には、「うどん」さんの方法になると思います。
「うどん」さんの方法(多分こうしておられるのではないかと想像しました)
1.ディレクトリ一覧をスプールに落とす 2.#ABC;複写-->ファイル-->SYS@SP????-->F256-->オプション=YES-->出力形式=FIXED-->あとは指示に従ってください 3.F256の8桁目から6文字がメンバ名ですので、#ABC;などでF256からF80に抽出し、加工します。 抽出時のフィールド編集で(@***@),(8,6),(@+++@)などとしています 4.F80を#TEDITで読み込みSコマンドで S ALL S”***”,”/RUN SU-CNV,DEV=MSD,FIL=AAA-JSL,(” S ALL S”+++”,”,D,OC,TXT,,BBB-SUL);” 5.メンバ名をつけて保存し、実行します。
(注)SYS@SP????の????は数字ですが、スプール表示の番号-1を指定します。
以上、長々と書きましたが、参考にならば幸いです。
|