如何在REXX / Regina中解析变量

时间:2013-11-23 21:40:33

标签: rexx

在编写宏时,我有一个变量{$#2},它以1或2位数后跟“。”开头,或者不是。当它以这种方式启动时,我想将数字放入rexxvar,我称之为C.

我试过了

#if [ DATATYPE(LEFT({$#2},1), "W") ]                             \
#evaluate ^^ ^parse '{$#2} C '.' .^                              \
#endif                                                           \

这个以及我能想到的每个变体都会给出错误,说#IF行包含无效字符。

我该怎么做?

我正在使用PPWizard和Regina - 但我无法创建任何标签。

由于 伊恩

2 个答案:

答案 0 :(得分:1)

使用 PPWizard 所以这可能都是错的,但

查看PPWizard #if,if应为

#if DATATYPE(LEFT({$#2},1), "W")   

#if [ DATATYPE(LEFT({$#2},1), "W") <> 0 ]  

但我不知道你能不能嵌入{$#2}(我不知道PPWizard)


对于解析语句,其中一个可能是你想要的

#evaluate ^^ ^parse value '{$#2}' with C '.' .^ 

#evaluate ^^ ^parse var {$#2} C '.' .^ 

请参阅rexx parse syntax


另一种方法可能会尝试Define Rexx标记并在rexx中执行此操作。更多人可以用纯rexx帮助你。即rexx将是

if  DATATYPE(LEFT(value_to_process,1), "W") then do
    parse var value_to_process C '.'
end

其中value_to_process是要检查的值(即{$#2})

答案 1 :(得分:0)

对于其他人。 问题的最终答案是写

#RexxVar value_to_process = {$#2}  
#evaluate+ ^^ ^if  DATATYPE(LEFT(value_to_process,1), "W") then do; parse var value_to_process  C '.'; end^  \

在我创建的宏中。

谢谢布鲁斯。您的回复对我的解决方案路线最有帮助。