利用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;
结果:
额外说明:
ods package open nopf ;
nopf选项:
ODS PACKAGE语句本来是用来共享SAS Stored Process(存储过程)的结果,会生成一个PackageMetaData的文件,该文件保存了该存储过程输出结果的相应信息。SAS其他应用程序通过该文件来读取存储过程的输出结果。但在此处我们不需要该文件,因此用nopf选项就可以避免生成该文件。大家也可以将该选项去掉,自己尝试一下。
Slash的又一力作! 试了,代码出错。似乎package不认识 mjx 发表于 2014-2-18 20:45
试了,代码出错。似乎package不认识
是吗?你的是哪个版本? very interesting. I can use it on my company's closed system. 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 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语句,如下所示:
如果找不到该语句,说明就是9.1不支持了。
似乎9.1不支持
请问能够按照Libname将一个文件夹里面包含的所有SAS数据集作为一个整体进行压缩?
页:
[1]