따옴표로 묶인 매크로 변수 두 개를 연결하려고하는데 쉬운 방법이 아닌 것 같습니다.따옴표로 묶인 매크로 변수를 연결하십시오.
%LET VAR1="This is not the greatest song in the world";
%LET VAR2="this is just a tribute.";
%LET TRIBUTE=%SYSFUNC(CATX(%STR(),&VAR1,&VAR2));
%PUT &TRIBUTE;
가 실제로 원하는 :
"This is not the greatest song in the world this is just a tribute."
그러나 위의 코드는 실제로 산출 :
은 우리가 말"This is not the greatest song in the world" "this is just a tribute."
그래서 내가 %QUOTE()
, %BQUOTE
등을 넣어보십시오. 따옴표를 unmasking 희망에 &VAR1
및 %VAR2
주위에 있지만 같은 결과가 얻을. 나를 위해 작동
있는 유일한 방법은 다음과 같습니다
%LET TRIBUTE="%SUBSTR(&VAR1.,2,%LENGTH(&VAR1.)-2) %SUBSTR(&VAR2.,2,%LENGTH(&VAR2.)-2)";
을하지만이 못생긴 정말 빠른 긴 얻을 수 있습니다. 더 좋은 방법이 없습니까?
두 가지 ... 첫째로 - 나는 '& ='구문에 대해 몰랐습니다 - 고마워요! 둘째로, '% let VAR3 = "% unquote_string (string = & var1 & var2.)"; 로의 var3 할당을 단순화 할 수 있습니다. –
그런 식으로 절대적으로 단순화 할 수 있습니다. 위와 같은 것이 조금 더 마음에 들지만, 따옴표를 없애는 것이 더 명확합니다. 일종의'% UNQUOTE'가 매크로 따옴표만큼이나 작동하는 것과 같습니다. (매크로 따옴표로 묶인 mvars라면 두 번 호출해야한다고 생각합니다.) – Joe
사실, 이제 생각해 보았습니다. FCMP 함수 나 매크로 함수를 만들 때의 나쁜 예가 될 것입니다. 기존 함수를 호출하기 만하면됩니다 ... 그냥 함수를 직접 호출 할 수도 있습니다. . –