如何利用SAS文件功能识别最后一行内容?

问题描述 投票:0回答:1

我正在使用文件I/O函数来读取文件的内容。有没有一种函数或某种快速方法可以识别一个文件的结尾?

测试程序是:

data _null_;
  set sashelp.class;
  file "class.txt";
  put _all_;
run;

data _null_;
  set sashelp.iris;
  file "iris.txt";
  put _all_;
run;

data have;
  path="class.txt";  output;
  path="iris.txt";   output;
run;

data want;
  set have;

  length content $1024.;
  filref=filename('_dummy_',path);
  filrc=fopen('_dummy_');
  if filrc then do;
    do while(fread(filrc)=0);
      rc=fget(filrc,content,1024);
      output;
    end;
    filrc=fclose(filrc);
  end;
run;

我想在

data want
步骤中导出一个标志变量。该变量使用 1 或 0 来标记该行是否是文件的最后一行。也就是说,这个变量在新的步骤中必须与
last.path
具有相同的值:

data want1;
  set want;
  by path notsorted;
  flag=last.path;
run;

注意:

want
数据集可能非常大,这就是为什么我不需要新的数据步骤。

sas
1个回答
0
投票

正常读取文件即可。

data want;
  set have;
  fname=path;
  infile dummy filevar=fname end=eof truncover;
  do record=1 by 1 while (not eof);
    input content $char1024.;
    last_path=eof;
    output;
  end;
run;
© www.soinside.com 2019 - 2024. All rights reserved.