我已经构建了一些宏代码,它将字段的给定行中的值传递给宏变量,然后将其用作字符串的一部分,从网站下载CSV文件。我尝试将此字段设置为默认长度$ 8。在“CALL SYMPUT”声明中。
这不起作用,因为大多数(但不是全部)字符串长度为4.当在日志中运行代码时,您可以看到提交到网站的URL中的尾随空格和代码翻倒。 / p>
当我尝试使用'CALL SYMPUT'长度为4美元时。它适用于那些长度为四个字符的字符串。
除非一些字符串是六个字符长中的一个,两个,三个,五个,否则这一切都会好起来的。我尝试以%let mynewvar =%trim(& myoldvar。);'的方式使用'%TRIM'函数但它导致相同的错误,其中URL中提交的宏变量具有尾随空格...
......我做错了什么?
由于
答案 0 :(得分:0)
如果您正在使用数据步骤中的CALL SYMPUT(),请尝试使用STRIP()函数删除空白。
data _null_;
x = "abcd ";
call symput("x",strip(x));
run;
%put X is __&x.__;
返回:
3735 %put X is __&x.__;
X is __abcd__
答案 1 :(得分:0)
您可以尝试CALL SYMPUTX左对齐并修剪尾随空白。
如果我们能看到一些示例代码,那么帮助您会更容易。
答案 2 :(得分:0)
保护您的嵌入式设备;你想要的角色%nrbquote。 http://support.sas.com/documentation/cdl/en/mcrolref/61885/HTML/default/viewer.htm#z3514bquote.htm