前のページ|次のページ

FGET関数

ファイルデータバッファ(FDB)からデータを変数にコピーします。

カテゴリ: 外部ファイル

構文

FGET(file-id, variable <, length>)

必須引数

file-id

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

variable

DATAステップの場合、データを保持する文字変数を指定します。マクロの場合、データを保持するマクロ変数を指定します。variableがマクロ変数で、存在しない場合は、作成されます。

オプション引数

length

FDBから取得する文字数を指定します。lengthを指定すると、指定した文字数のみ(またはバッファ内の残りの文字数がlengthより少ない場合は、その残りの文字数)が取得されます。lengthを省略すると、現在の列の位置から次の区切り文字まで、FDB内のすべての文字が返されます。デフォルトの区切り文字は空白です。区切り文字は取得されません。

参照項目 区切り文字の詳細については、FSEP関数を参照してください。

詳細

FGETは操作が成功した場合は0、FDBの終わりに達した場合または使用可能なトークンがなくなった場合は-1を返します。
FGETの実行後、列ポインタはFDBの次の読み込み位置へ移動します。

この例では、ファイル参照名MYFILEを外部ファイルに割り当ててそのファイルを開こうとします。ファイルが正常に開かれると、ファイルデータバッファに最初のレコードを読み込み、レコードの最初のトークンを取得し、このトークンを変数MYSTRINGに保存した後、ファイルが閉じられます。マクロステートメントでは、文字列を引用符で囲む必要はありません。
%let filrf=myfile;
%let rc=%sysfunc(filename(filrf, physical-filename));
%let fid=%sysfunc(fopen(&filrf));
%if &fid > 0 %then
   %do;
      %let rc=%sysfunc(fread(&fid));
      %let rc=%sysfunc(fget(&fid, mystring));
      %put &mystring;
      %let rc=%sysfunc(fclose(&fid));
   %end;
%let rc=%sysfunc(filename(filrf));

関連項目:

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