楼主: da0mao
1259 2

[问答] 循环读取所有文件的观测数并写入文件名 [推广有奖]

  • 0关注
  • 0粉丝

初中生

9%

还不是VIP/贵宾

-

威望
0
论坛币
6 个
通用积分
3.0000
学术水平
0 点
热心指数
2 点
信用等级
0 点
经验
589 点
帖子
5
精华
0
在线时间
15 小时
注册时间
2018-4-21
最后登录
2019-8-15

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
本人新人,下面这段前人的程序目的在于把观测数写入文件名,但是目前只能运用于文件夹下的第一个文件,我想做个循环遍历所有文件,不知道应该在哪里更改一下,求指点啊,谢谢!

/**********************************************************************************/
/* Collect the list of files ending with ".cum" in delivery folder                */
/**********************************************************************************/

  %LET FROM_LOC = &directory;
  %LET INPUT_PARAM = *.cum;

  FILENAME deliv PIPE "dir &FROM_LOC\&INPUT_PARAM /b";
  DATA _null_;
  LENGTH filename $1000;
  INFILE deliv;
  INPUT filename $;
     if _error_ ne 0 then do;
        _error_=0;
        delete;
            put "Not processed: No file in delivery folder corresponds to &INPUT_PARAM";
     end;
  call symput ('INPUT_FILE',trim(left(filename)));
  RUN;
%put Processing &INPUT_FILE.;


/**********************************************************************************/
/* PROTOCOL - MAKE SURE INPUT FILE IS PRESENT BEFORE PROCESSING DATA              */
/**********************************************************************************/

%IF %SYSFUNC(FILEEXIST(&directory\&INPUT_FILE.)) %THEN %DO;

  /********************************************************************************/
  /* PROTOCOL - REASSIGN LOG AND LIS FILES TO NEW FILENAMES                       */
  /********************************************************************************/

  FILENAME OUTLOG "&directory\LOGLIS\&INPUT_FILE..LOG";
  PROC PRINTTO LOG=OUTLOG NEW;
  RUN;

  FILENAME OUTLIS "&directory\LOGLIS\&INPUT_FILE..LIS";
  PROC PRINTTO PRINT=OUTLIS NEW;
  RUN;

  /********************************************************************************/
  /* PROTOCOL - ADD CODE FOR SAS7BDAT                                             */
  /********************************************************************************/

  LIBNAME OUTLIB V8 "&directory";

  /********************************************************************************/
  /* PROTOCOL - BEGIN PROCESSING                                                  */
  /********************************************************************************/

  %PUT NOTE: Begin processing of file: %SCAN(&_files,1, ' ');

        PROC IMPORT OUT= WORK.COUNTFILE
                    DATAFILE= "&directory\&INPUT_FILE."
                    DBMS=DLM;
             GETNAMES=NO;
             DATAROW=1;
                 GUESSINGROWS=32767;
        RUN;

  /********************************************************************************/
  /* PROTOCOL - COUNT NUMBER OF RECORDS                                           */
  /********************************************************************************/

  %global COUNTOBS;

  %COUNT_RECORDS(_INPUT_DS=WORK.COUNTFILE,_COUNT=COUNTOBS);

  %PUT CDMINFO: COUNTFILE CONTAINS &COUNTOBS RECORDS.;

  /********************************************************************************/
  /* PROTOCOL - PRINT DATA IN LIS                                                 */
  /********************************************************************************/

  %PRINT_CLIENT_DATA(
    _TITLE= COVANCE CDM DEPT. PROTOCOL &INPUT_FILE.,
    _DS=WORK.COUNTFILE,
    _OBS_N=32);

  /********************************************************************************/
  /* PROTOCOL - RENAME TEXT FILE WITH NUMBER OF RECORDS                           */
  /* ADDED BY F.TASSY 21JUL2016                                                   */
  /********************************************************************************/

  /* Create the name using COUNTOBS macrovariable */
  %LET NEWNAME = %SYSFUNC(TRANWRD(&INPUT_FILE.,RECCOUNT,&COUNTOBS.));

  /* Rename the file */
  %SYSEXEC %STR(rename "&directory\&INPUT_FILE." "&NEWNAME.");

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:文件名 Processing directory Processed Protocol

已有 1 人评分热心指数 收起 理由
eijuhz + 1 精彩帖子

总评分: 热心指数 + 1   查看全部评分

沙发
da0mao 发表于 2018-7-3 16:00:17 |只看作者 |坛友微信交流群
稍微顶一下,期待高手

使用道具

藤椅
popodan 在职认证  发表于 2018-7-5 12:06:22 |只看作者 |坛友微信交流群
我正在写一个用sas循例一个路径下所有文件并检测文件大小、最后修改时间然后自动删除老旧大文件的paper,等接受了再把code分享给你哈

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-26 14:35