前のページ|次のページ

FNOTE関数

最後に読み込まれたレコードを特定し、FPOINT関数で使用できる値を返します。

カテゴリ: 外部ファイル

構文

FNOTE(file-id)

必須引数

file-id

(通常、FOPEN関数で)ファイルを開いたときに割り当てられた識別子を指定する数値定数、変数または式です。

詳細

FNOTEはブックマークのように使用できます(ファイルの位置をマークし、FPOINTを使用してアプリケーションが後でその位置に戻れるようにします)。FNOTEから返される値は、FPOINT関数が特定のレコードのファイルポインタを再配置するために必要になります。
FNOTEの各識別子に関連付けられたメモリを解放するには、DROPNOTEを使用します。
注: 新しいレコードが現在のレコードよりも長い場合、現在のレコードのかわりに新しいレコードを書き込むことはできません。

この例では、ファイル参照名MYFILEを外部ファイルに割り当ててそのファイルを開こうとします。ファイルが正常に開いた場合(変数FIDの値が正になる)、レコードを読み込み、3番目に読み込まれたレコードの位置を変数NOTE3に保存します。その後、FPOINTを使用してNOTE3にポインタを戻してファイルを更新します。レコードを更新したら、ファイルを閉じます。
%let 
fref=MYFILE;
%let rc=%sysfunc(filename(fref, physical-filename));
%let fid=%sysfunc(fopen(&fref, u));
%if &fid > 0 %then
   %do;
      %let rc=%sysfunc(fread(&fid));
         /* Read second record. */
      %let rc=%sysfunc(fread(&fid));
         /* Read third record. */
      %let rc=%sysfunc(fread(&fid));
         /* Note position of third record. */
      %let note3=%sysfunc(fnote(&fid));
         /* Read fourth record. */
      %let rc=%sysfunc(fread(&fid));
         /* Read fifth record. */
      %let rc=%sysfunc(fread(&fid));
         /* Point to third record. */
      %let rc=%sysfunc(fpoint(&fid,&note3));
         /* Read third record. */
      %let rc=%sysfunc(fread(&fid));
         /* Copy new text to FDB. */
      %let rc=%sysfunc(fput(&fid, New text));
         /* Update third record  */
         /* with data in FDB. */
      %let rc=%sysfunc(fwrite(&fid));
         /* Close file. */
      %let rc=%sysfunc(fclose(&fid));
   %end;
%let rc=%sysfunc(filename(fref));

関連項目:

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