前のページ|次のページ

DCLOSE関数

DOPEN関数によって開かれたディレクトリを閉じます。

カテゴリ: 外部ファイル

構文

DCLOSE(directory-id)

必須引数

directory-id

DOPEN関数によってディレクトリが開かれたときに割り当てられた識別子を指定する数値変数です。

詳細

DCLOSEは、操作に成功した場合は0、失敗した場合は≠0を返します。DCLOSE関数は、DOPEN関数によって以前に開かれたディレクトリを閉じます。DCLOSEは開かれたメンバも閉じます。
注: DATAステップ内で開かれているすべてのディレクトリまたはメンバは、DATAステップの終了時に自動的に閉じられます。

例1: DCLOSEを使用してディレクトリを閉じる

次の例では、以前にファイル参照名MYDIRが割り当てられているディレクトリを開き、メンバ数を返してからそのディレクトリを閉じます。
%macro memnum(filrf, path);
%let rc=%sysfunc(filename(filrf, &path));
%if %sysfunc(fileref(&filrf))=0 %then
   %do;
         /* Open the directory. */
      %let did=%sysfunc(dopen(&filrf));
      %put did=&did;
         /* Get the member count. */
      %let memcount=%sysfunc(dnum(&did));
      %put &memcount members in &filrf.;
         /* Close the directory. */
      %let rc=%sysfunc(dclose(&did));
   %end;
%else %put Invalid FILEREF;
%mend;
%memnum(MYDIR, physical-filename)

例2: DATAステップ内でDCLOSEを使用する

次の例では、DATAステップ内でDCLOSE関数を使用します。
%let filrf=MYDIR;
data _null_;
  rc=filename("&filrf", "physical-filename");
  if fileref("&filrf")=0 then
     do;
           /* Open the directory. */
        did=dopen("&filrf");                
           /* Get the member count. */
        memcount=dnum(did);
        put memcount "members in &filrf";
           /* Close the directory. */
        rc=dclose(did);
     end;
  else put "Invalid FILEREF";
run;

関連項目:

前のページ|次のページ|ページの先頭へ