引数からファイルを読み取り、そこから行ごとに配列に追加する rexx プログラムを作成しました。いくつかのプルを追加して、検索条件を定義し、配列を検索してから、動的に新しいものを追加したかったのです。メンバーを pds に追加し、検索結果を入力します。動作しますが、一連のエラーがスローされます。
これがコードです
/* REXX READ FILE */
/* */
/* */
/* */
/* */
ARG INFILE
IF ARG() = 0 THEN
DO
SAY 'INPUT REQUIRED'
EXIT
END
/* */
/* */
SAY 'WHAT IS THE STRING YOU ARE LOOKING FOR'
PULL SEARCHLINE
IF SEARCHLINE = "" THEN
DO
SAY 'YOU DID NOT ENTER A STRING'
SAY 'PLEASE ENTER ONE NOW'
PULL SEARCHLINE
END
/* */
/* */
/* */
/* VALIDATING FILE EXISTANCE*/
INDDFILE = INFILE
"LISTC NVSAM ENT('"INDDFILE"') "
IF RC = 0 THEN
DO
SAY "FOUND" INDDFILE
END
ELSE DO
SAY INDDFILE 'NOT FOUND'
EXIT
END
/**************************************/
"ALLOC F(INFILE) DSN('"INDDFILE"')SHR REU"
"EXECIO * DISKR INFILE ( FINIS STEM MYFILE."
"FREE F(INFILE)"
STRLENG = LENGTH(SEARCHLINE)
INDEX = 0
I = 1
DO WHILE I <= MYFILE.0
RESULT = POS(SEARCHLINE,MYFILE.I)
IF RESULT /= 0 THEN
DO
MATCH.INDEX =LEFT(MYFILE.I,12)
SAY MATCH.INDEX
SAY INDEX
INDEX = INDEX +1
END
I = I + 1
END
SAY "WHAT IS THE OUT PUT FILE? "
PULL FILE
FILE1 = FILE
SAY "WHAT WILL THE MEMBER BE CALLED?"
PULL MEMBER
/*******************************************/
/*******************************************/
ADRESS TSO
"ALLOC DA('"FILE1"') F(ABCD) NEW SPACE(10,20)DIR(100)TRACKS"
"FREE F(ABCD)"
/*******************************************/
"ALLOC FI(ABCD) DA('"FILE1"("MEMBER")')SHR"
"EXECIO" INDEX "DISKW ABCD (STEM MATCH. FINIS"
"FREE F(ABCD)"
IF RC <> 0 THEN DO
SAY "ERROR IN ALLOCATING THE PDS MEMBER" RC
END
EXIT
これは私のエラーです
コマンド・アドレスが見つかりません
63 -アドレス TSO
+++ RC(-3) +++ データ・セット QXGCVNH.OUTLIB が割り振られていません+理由コードは 38 です IGG0CLEH ファイル ABCD は解放されていません。割り当てられていません
エラーを修正してそのように実行しないようにするために私ができることを誰にもアドバイスできますか? 行全体ではなく、入力した文字列のみを返す方法があるかどうか、誰かがアドバイスできますか?
ありがとう