人人可用的 Rexx
2008-11-10 08:28:32 来源:WEB开发网清单 10. ls-6.rexx
#!/usr/bin/rexx
ADDRESS SYSTEM ls WITH OUTPUT STEM ls.
SIGNAL ON NOVALUE NAME quit
DO i=1
SAY i || ") " || ls.i
END
quit:
为完成我们的 ls 变量,接下来用一个文件作为它的 I/O:
清单 11. ls-4.rexx
#!/usr/bin/rexx
ADDRESS SYSTEM ls WITH OUTPUT STREAM files
DO i=1
line = linein(files)
IF line = "" THEN LEAVE
SAY i || ") " || line
END
rm files
由于输出流是一个规则的文件,因此最好在结束时将其删除。
文本处理函数
通过前面简短的例子,读者将会对 Rexx 这门编程语言有一些感觉。当然,您也可以定义您自己的过程和函数 —— 在单独的模块文件中,如果您希望的话 —— 然后以 CALL 指令或者以带括号的参数方式来调用它们,正如本文中一些使用标准函数的例子。
或许,作为一门文本处理语言,Rexx 的最强大之处在于它所具备的实用的内置字符串处理函数。可能有超过一半的标准 Rexx 函数用于处理字符串,其他的大部分被用来以极其显而易见的方式处理位向量。此外,甚至位向量也经常作为由 1 和 0 构成的向量来处理(或者读入):
清单 12. bits.rexx
#!/usr/bin/rexx
SAY b2c('01100001') b2c('01100010') /* --> a b */
SAY bitor(b2c('01100001'), b2c('01100010')) /* --> c */
SAY bitor('a','b') /* --> c */
EXIT
/* Function in ARexx, but not ANSI Rexx */
b2c: PROCEDURE
ARG bits
return x2c(b2x(bits))
更多精彩
赞助商链接