在编写宏时,我有一个变量{$#2},它以1或2位数后跟“。”开头,或者不是。当它以这种方式启动时,我想将数字放入rexxvar,我称之为C.
我试过了
#if [ DATATYPE(LEFT({$#2},1), "W") ] \
#evaluate ^^ ^parse '{$#2} C '.' .^ \
#endif \
这个以及我能想到的每个变体都会给出错误,说#IF行包含无效字符。
我该怎么做?
我正在使用PPWizard和Regina - 但我无法创建任何标签。
由于 伊恩
答案 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 '.' .^
另一种方法可能会尝试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^ \
在我创建的宏中。
谢谢布鲁斯。您的回复对我的解决方案路线最有帮助。