SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 7116|回复: 8
打印 上一主题 下一主题

利用ODS创建zip文件

[复制链接]

10

主题

39

帖子

1049

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1049
QQ
跳转到指定楼层
楼主
发表于 2014-2-16 20:00:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天为大家奉上一小段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选项就可以避免生成该文件。大家也可以将该选项去掉,自己尝试一下。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
分享到:  微信微信
收藏收藏
回复

使用道具 举报

6

主题

31

帖子

293

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
293
沙发
发表于 2014-2-16 20:17:39 | 只看该作者
Slash的又一力作!
SAS资源
1. SAS 微信:mysasnet
2. SAS QQ群:348941365
3. SAS Blog:编程|统计|医药
回复 支持 反对

使用道具 举报

0

主题

2

帖子

24

积分

新手上路

Rank: 1

积分
24
板凳
发表于 2014-2-18 20:45:15 来自手机 | 只看该作者
试了,代码出错。似乎package不认识
回复 支持 反对

使用道具 举报

10

主题

39

帖子

1049

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1049
QQ
地板
 楼主| 发表于 2014-2-22 20:11:52 | 只看该作者
mjx 发表于 2014-2-18 20:45
试了,代码出错。似乎package不认识

是吗?你的是哪个版本?
回复 支持 反对

使用道具 举报

0

主题

3

帖子

182

积分

注册会员

Rank: 2

积分
182
5#
发表于 2014-3-4 16:56:04 | 只看该作者
very interesting. I can use it on my company's closed system.
回复 支持 反对

使用道具 举报

1157

主题

1158

帖子

3489

积分

论坛元老

Rank: 8Rank: 8

积分
3489
6#
发表于 2014-3-17 16:46:15 | 只看该作者
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
回复 支持 反对

使用道具 举报

10

主题

39

帖子

1049

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1049
QQ
7#
 楼主| 发表于 2014-3-17 17:10:50 | 只看该作者
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不支持了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

0

主题

2

帖子

24

积分

新手上路

Rank: 1

积分
24
8#
发表于 2014-3-21 23:19:01 | 只看该作者
似乎9.1不支持
回复 支持 反对

使用道具 举报

0

主题

1

帖子

12

积分

新手上路

Rank: 1

积分
12
9#
发表于 2016-8-1 10:41:04 | 只看该作者
请问能够按照Libname将一个文件夹里面包含的所有SAS数据集作为一个整体进行压缩?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2024-4-20 00:39 , Processed in 0.142441 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表