首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >以编程方式编译SAS SCL代码

以编程方式编译SAS SCL代码
EN

Stack Overflow用户
提问于 2009-04-28 09:51:22
回答 2查看 1.7K关注 0票数 3

在Windows中有没有一种编程的方式来编译SAS9.1.3 SCL代码(注:不是普通的SAS代码)?我发现的唯一方法是使用SAS GUI:我们有一个Perl脚本,它将击键发送到UI。虽然这是可行的(某种程度上),但它丑陋且容易出错,而且太脆弱了,无法添加到我们的自动化构建脚本中。

编辑:我最初的问题可能有点不清楚。我知道proc build;我的问题是首先将一些纯文本作为SCL条目添加到SAS目录中。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-04-29 10:52:51

我发现这是一个先有鸡后有蛋的问题。我发现只有通过使用已经存在的SCL条目才能将纯文本放入SCL条目中……

我有一个设置,可以在Catalog条目中从纯文本文件读取SCL代码并将其写入纯文本文件。我将其用于修订控制目的(CVS)。

虽然CVS主要用于纯文本代码,但它也可以处理二进制文件。因此,我创建了一个SCL条目(称为FILE2SCL),它可以将纯文本导入到其他SCL条目中。然后,我将此SCL条目处理为二进制文件,并将其检入到CVS中。

这样,我就可以通过编程方式从CPORT文件中获取此SCL条目,并使用此SCL条目将SCL代码从纯文本导入到其他SCL条目中。然后,我可以使用PROC BUILD编译SCL条目,就像您提到的那样。

我的FILE2SCL条目如下所示:

代码语言:javascript
复制
INIT:
  /***************************************************************/
  /*                                                             */
  /* Call this SCL like this:                                    */
  /* %let srcFile=D:\work\dummy.scl;                             */
  /* %let dstEntry=WORK.NEW.DUMMY.SCL;                           */
  /* proc display catalog=work.cat.file2scl.scl;                 */
  /* run;                                                        */
  /*                                                             */
  /***************************************************************/

  length Rc           8;
  length theFile  $ 200;
  length theEntry $ 128;

  theFile=symget('SRCFILE');   * Source file *;
  theEntry=symget('DSTENTRY'); * Destination entry *;

  * Assign filename *;
  Rc=filename('temp',theFile);

  * Include external file into preview buffer *;
  Rc=PREVIEW('INCLUDE','temp');
  * Save contents of preview buffer to SCL entry *;
  Rc=PREVIEW('SAVE',theEntry);
  Rc=PREVIEW('CLEAR');
  Rc=PREVIEW('CLOSE');

  * Deassign filename *;
  Rc=filename('temp','');
return;

注释解释了如何使用它:首先设置一个SAS宏变量“SCL”,以包含您的SCL源代码文件的路径,以及另一个宏变量"dstEntry“,以包含您希望您的SCL条目所在的入口路径。然后PROC显示FILE2SCL条目,它会将您的SCL源代码导入到指定的SCL条目中,然后您可以使用PROC BUILD编译它。

票数 4
EN

Stack Overflow用户

发布于 2009-05-11 15:21:26

此外,您还可以使用和查看。它是专门为此目的而设计的(将SCL代码保存在常规文件中,以便进行版本控制,并能够编译成目录)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/797085

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档