2013-11-23 3 views
0

매크로를 작성할 때 1 또는 2 자리 숫자 뒤에 "."가 오는 변수 {$ # 2}가 있거나없는 경우가 있습니다. 그것은 그런 식으로 시작되면, 난 내가REXX/Regina에서 변수를 구문 분석하는 방법

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

이를 시도 C.

라는 가지고 rexxvar로 수를 넣어 원하고, 내가 생각할 수있는 모든 변화는, 오류가 말하는 제공 #IF 줄에 잘못된 문자가 포함되어 있습니다.

어떻게해야합니까?

저는 PPWizard와 Regina를 사용하고 있습니다.하지만 두 태그 중 하나를 만들 수 없습니다.

감사 이안

+0

문제가 원인일까요? 또는 parse 문 또는 둘 다 ??? –

답변

1

내가 PPWizard 그래서이 모든 잘못 될 수 없습니다 사용 할 하지만

, PPWizard #if 보면서 하나

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

또는

할 필요가있는 경우
#if [ DATATYPE(LEFT({$#2},1), "W") <> 0 ] 
당신은 구문 분석 문의 경우 또는하지 (나도 몰라 PPWizard를)


을 {2 $ #}을 끼워 넣을 수 어떠했는지

하지만 이들 중 하나가 당신이 원하는 것을 할 수있다 모르는

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

또는

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

참조 rexx parse syntax


다른 방법으로 Define Rexx 태그를 사용해 rexx에서 해보십시오. 더 많은 사람들이 순수한 rexx로 당신을 도울 수 있습니다. 즉 REXX가 value_to_process의 값이 선택 될

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

것 (즉, {$ # 2}) 타인

0

. 문제에 대한 최종 답변은 내가 생성 된 매크로에

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

을 작성하는 것입니다.

감사합니다. Bruce. 답장은 솔루션에 대한 내 경로에서 가장 도움이되었습니다.

관련 문제