简介: 像处理数据集一样处理文件内容
用法示例:*衍生一个测试用的临时文件;
- %let dummy=D:;
- data _null_;
- file "&dummy.\in.sas";
- set sashelp.class;
- put name @13 sex @17 age @21 height @27 weight;
*示例1: 在 in.sas 文件的末尾增加一条观测;
- %file_textprocess(filein=&dummy.\in.sas,optin=%str(truncover end=eof),process=%str(
- output;
- if eof then do;
- data="whymath";
- output;
- end;
- ));
*示例2: 删除 in.sas 文件的最后一条观测;
- %file_textprocess(filein=&dummy.\in.sas,optin=%str(truncover end=eof),process=%str(
- if eof then delete;
- ));
*示例3: 查询 in.sas 文件所有包含单词"M"的观测, 并输出到 out.sas 文件中;
- %file_textprocess(filein=&dummy.\in.sas,fileout=&dummy.\out.sas,process=%str(
- if findw(data,'M') then output;
- ));
*示例4: 修订 out.sas 文件, 将修订后的结果打印到结果窗口, 最后将文件的编码由 utf-8 变更为 euc-cn;
- %file_textprocess(filein=&dummy.\out.sas,optin=%str(truncover encoding='utf-8'),optout=%str(encoding='euc-cn'),process=%str(
- data=cats('第',_n_,'行:',data);
- proc print;
- run;
- ));
说明: 变量 data 指向了输入缓存区的内容, 您需要在 process= 参数中使用 data, 而不再是 _infile_.
参考: SAS帮助文档
源代码:
- file_textprocess.sas