能否,请你帮我出个主意:我在TSO中写一个REX程序,读取PDS1中的所有文件,并让我们说逐行将所有文件写入PDS2.我的问题是。
看不出我的问题出在哪里。代码如下。
ADDRESS TSO "ALLOC DA("newDS") FI(infile4) SHR"
ADDRESS TSO "ALLOC DA("newDSO") FI(outfile)"
................
S= RES.0
DO q = 7 TO S
RES.q = STRIP(RES.q)
...........
ADDRESS TSO "EXECIO * DISKR infile4 (STEM LINE. FINIS"
do until i > line.0
ADDRESS TSO "EXECIO * DISKR infile4 (STEM LINE. FINIS"
......
ADDRESS TSO "EXECIO * dISKW outfile (STEM lineo. FINIS"
......
i = i + 1
end
ADDRESS TSO "FREE FI(infile4)"
ADDRESS TSO "FREE FI(outfile)"
END
先谢谢你
另一种方法是做类似这样的伪代码,完全不用干变量。 这样做还有一个好处,就是在处理巨大的文件时不会占用内存...
do forever
"execio 1 diskr indd" /* Read 1 record */
if (rc <> 0) or some other conditions -- look it up in the book )
then do while queued()>0 /* Make sure the queue is empty b4 we leave */
pull .
end
leave
end
parse pull data_record /* Mixed-case data */
new_data_record = somemod(old_data_record)
queue new_data_record
"execio 1 diskw outdd" /* write 1 record */
if (rc<>0) then I have an I/O error writing (full disk?)
end
"execio 0 diskw outdd (finis" /* Close the output dataset */
IBMzOS V2R4手册sikja300_v2r4.pdf