0

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

我努力了

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

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

我该怎么做?

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

谢谢伊恩

4

2 回答 2

1

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

查看PPWizard #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 解析语法


另一种方法可能是尝试定义 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})

于 2013-11-24T00:44:04.987 回答
0

为他人。问题的最终答案是写

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

在我正在创建的宏中。

谢谢布鲁斯。您的回复对我寻求解决方案的途径最有帮助。

于 2013-11-24T09:29:27.437 回答