2015-09-17 24 views
0

我試圖打印在IO.ME.DATA數據集(請參閱我的jcl)中找到的數據(逐行)。如何使用Rexx打印數據集內容

我碰到下面的錯誤,並希望得到語法正確:

10 +++ DO I = 1 TO SYSTSIN.0 
Error running MYREXX, line 10: Bad arithmetic conversion 

我是新來REXX。由於

JCL

//JCL01 JOB 000,'TEST REXX', 
//    CLASS=T, 
//    MSGCLASS=X, 
//    USER=ME 
/*JOBPARM R=999,T=999,L=9999,S=ANY 
//* 
//STEPREXX EXEC PGM=IKJEFT01,PARM='MYREXX' 
//SYSEXEC DD DISP=SHR,DSN=IO.ME.REXX 
//SYSTSPRT DD SYSOUT=* 
//SYSTSIN DD DISP=SHR,DSN=IO.ME.DATA 
// 

MYREXX(IO.ME.REXX)

SAY 'START OF REXX CODE.' 

"EXECIO * DISKR SYSTSIN (STEM LINE. FINIS" 

DO I = 1 TO SYSTSIN.0 
    SAY "VALUE OF I : " SYSTSIN.I 
END 

SAY 'END OF REXX CODE.' 

數據(從IO.ME.DATA)

MYDATA1,A 
MYDATA2,B 
MYDATA3,C 
MYDATA4,D 
MYDATA5,E 

回答

1

嘗試改變做迴路

DO I = 1 TO Line.0 
    SAY "VALUE OF I : " Line.I 
END 

命令

"EXECIO * DISKR SYSTSIN (STEM LINE. FINIS" 

說讀取文件SYSTSIN到幹可變線。行的讀取數量將被放置到line.0line.1將持有該文件的第一行等

+0

超級它的工作!謝謝! – user3489502

1

除了什麼@Bruce馬丁寫道,不要點SYSTSIN您輸入數據。使用不同的DD。 IKJEFT01爲了自己的目的使用SYSTSIN。即使它在這種特殊情況下工作,使用已知用於您自己的其他目的的DDNAMES是一個壞習慣。

//JCL01 JOB 000,'TEST REXX', 
//    CLASS=T, 
//    MSGCLASS=X, 
//    USER=ME 
/*JOBPARM R=999,T=999,L=9999,S=ANY 
//* 
//STEPREXX EXEC PGM=IKJEFT01,PARM='MYREXX' 
//SYSEXEC DD DISP=SHR,DSN=IO.ME.REXX 
//SYSTSPRT DD SYSOUT=* 
//SYSTSIN DD DUMMY 
//MYDATA DD DISP=SHR,DSN=IO.ME.DATA 
//* 

這並不適合評論,但我覺得指出很重要。

+0

優秀的建議,謝謝。進行了更改 – user3489502