SAS中文论坛

标题: 利用ODS创建zip文件 [打印本页]

作者: slash    时间: 2014-2-16 20:00
标题: 利用ODS创建zip文件
今天为大家奉上一小段SAS程序,该段程序的功能就是创建zip压缩文件。可以将程序输出的rtf文件、txt文件、csv文件等文件生成一个压缩包。废话不多说,程序如下所示:
复古怀旧复古怀旧

/*设置路径*/
%let dir=D:\test;
/*分配逻辑库*/
libname out "&dir";
/*定义一个csv文件*/
filename newcsv "&dir\pct.csv";
/*输出一个数据集到csv文件*/
ods csv file=newcsv;
proc print data=sashelp.class label;
run;
ods csv close;


/*创建一个rtf格式的说明文件*/
filename rm "&dir/readme.rtf";
ods rtf file=rm style=printer text="数据集信息:";
proc datasets lib=sashelp nolist;
        contents data=class;
quit;
ods rtf close;

/*利用ODS PACKAGE创建zip文件*/
ods package open nopf ;
/*将csv文件加入压缩包,path表示将该文件放入data文件夹中*/
ods package add file=newcsv path="data/";
/*将rtf文件加入压缩包*/
ods package add file=rm;
/*创建压缩包,制定压缩包名字、路径*/
ods package publish archive properties (archive_name="carstats.zip" archive_path="&dir");
ods package close;



结果:
[attach]3[/attach]

[attach]4[/attach]

额外说明:
ods package open nopf ;
nopf选项:
ODS PACKAGE语句本来是用来共享SAS Stored Process(存储过程)的结果,会生成一个PackageMetaData的文件,该文件保存了该存储过程输出结果的相应信息。SAS其他应用程序通过该文件来读取存储过程的输出结果。但在此处我们不需要该文件,因此用nopf选项就可以避免生成该文件。大家也可以将该选项去掉,自己尝试一下。



作者: webgu    时间: 2014-2-16 20:17
Slash的又一力作!
作者: mjx    时间: 2014-2-18 20:45
试了,代码出错。似乎package不认识
作者: slash    时间: 2014-2-22 20:11
mjx 发表于 2014-2-18 20:45
试了,代码出错。似乎package不认识

是吗?你的是哪个版本?
作者: ahuige    时间: 2014-3-4 16:56
very interesting. I can use it on my company's closed system.
作者: remeva    时间: 2014-3-17 16:46
51   ods rtf close;
52
53   /*利用ODS PACKAGE创建zip文件*/
54   ods package open nopf ;
         -------
         180
ERROR 180-322: 语句无效或未按正确顺序使用。
55   /*将csv文件加入压缩包,path表示将该文件放入data文件夹中*/
56   ods package add file=newcsv path="data/";
         -------
         180
ERROR 180-322: 语句无效或未按正确顺序使用。
57   /*将rtf文件加入压缩包*/
58   ods package add file=rm;
         -------
         180
ERROR 180-322: 语句无效或未按正确顺序使用。
59   /*创建压缩包,制定压缩包名字、路径*/
60   ods package publish archive properties (archive_name="carstats.zip" archive_path="&dir");
         -------
         180
61   ods package close;
         -------
         180
ERROR 180-322: 语句无效或未按正确顺序使用。



9.1.3
作者: slash    时间: 2014-3-17 17:10
remeva 发表于 2014-3-17 16:46
51   ods rtf close;
52
53   /*利用ODS PACKAGE创建zip文件*/

由于目前我没有9.1.3的版本,可能是因为9.1没有这个语句的缘故吧。你在帮助文档看看,是不是有这个语句。

可以按照以下路径寻找:
SAS Products——Base SAS——SAS 9.3 Output Delivery System User's Guide——ODS Statement——Dictionary of ODS Language Statements
你看是否能够找到ODS PACKAGE语句,如下所示:
[attach]41[/attach]

如果找不到该语句,说明就是9.1不支持了。

作者: mjx    时间: 2014-3-21 23:19
似乎9.1不支持

作者: 乾坤神龙    时间: 2016-8-1 10:41
请问能够按照Libname将一个文件夹里面包含的所有SAS数据集作为一个整体进行压缩?




欢迎光临 SAS中文论坛 (https://mysas.net/forum/) Powered by Discuz! X3.2