前のページ|次のページ

FREWIND関数

ファイルの先頭にファイルポインタを配置します。

カテゴリ: 外部ファイル

構文

FREWIND(file-id)

必須引数

file-id

通常、FOPEN関数によってファイルが開かれたときに割り当てられた識別子を指定する数値変数です。

詳細

FREWINDは、操作が成功した場合は0、失敗した場合は≠0を返します。FREWINDは、シーケンシャルアクセスで開いているファイルには影響しません。

この例では、ファイル参照名MYFILEを外部ファイルに割り当てます。ファイルを開き、ファイルの最後に到達するまでレコードを読み込みます。その後、FREWIND関数はファイルの先頭にポインタを再配置します。最初のレコードが再度読み込まれてファイルデータバッファ(FDB)に保存されます。最初のトークンが取得されてマクロ変数VALに保存されます。
%let filrf=myfile;
%let rc=%sysfunc(filename(filrf, physical-filename));
%let fid=%sysfunc(fopen(&filrf));
%let rc=0;
%do %while (&rc ne −1);
   /* Read a record. */
   %let rc=%sysfunc(fread(&fid));
%end;
   /* Reposition pointer to beginning of file. */
%if &rc = −1 %then
  %do;
    %let rc=%sysfunc(frewind(&fid));
       /* Read first record. */
    %let rc=%sysfunc(fread(&fid));
       /* Read first token  */
       /* into macro variable VAL. */
    %let rc=%sysfunc(fget(&fid, val));
    %put val=&val;
  %end;
%else
  %put Error on fread=%sysfunc(sysmsg());
%let rc=%sysfunc(fclose(&fid));
%let rc=%sysfunc(filename(filrf));

関連項目:

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