FILEGETファンクションは、読取り用に開かれているバイナリ以外のファイルのテキストを返します。FILEGETがそのファイルの末尾に達すると、NA
を返します。FILEGETで読み取られるすべてのテキストは、データベース・キャラクタ・セットに変換されます。FILEGETは、データベース・キャラクタ・セットで表せないデータを読み取ることはできません。
戻り値
TEXT
構文
FILEGET(fileunit [LENGTH int-expression])
引数
FILEOPENファンクションを事前にコールすることによって読取り用に開かれたファイルに割り当てられるINTEGER。
FILEGETがファイルから返すバイト数を指定するINTEGER式。入力ファイルで行端文字に達すると、FILEGETは作成中の結果でそのまま新しい行を開始します。LENGTHを省略した場合、FILEGETは、含まれるバイト数にかかわらず1行または1レコードを読み取ります。
注意
読み取られるバイト数と返されるバイト数の違い
LENGTHで指定する値は、FILEGETファンクションが返すバイト数であり、FILEGETファンクションが読み取るバイト数ではありません。この2つの値は、場合によっては異なる値になることがあります。たとえば、読取り対象のファイルにタブ文字が含まれている場合、FILEGETが返すバイト数にはタブ拡張のバイト数も含まれます(タブ拡張が存在する場合)。このような場合、FILEGETが返すバイト数は、FILEGETが読み取ったバイト数よりも大きくなります。
例
例7-89 ファイルを読み取るプログラム
この例は、引数としてファイル名を取るreadfile
という名前のプログラムです。このプログラムは、ファイルを開いてファイルの各行を読み取り、それをwholetext
という名前の複数行のテキスト変数に追加し、ファイルを閉じます。readfile
はローカル変数を使用して、ファイル・ユニット番号、および読み取られるとおりにファイルの各行を格納します。
DEFINE wholetext VARIABLE TEXT LD Multiline text variable DEFINE readfile PROGRAM LD Program to store data from a file in a multiline text variable PROGRAM VARIABLE fil.unit INTEGER "Local Var To Store File Unit VARIABLE fil.text TEXT "Local Var To Store Single Lines FIL.UNIT = FILEOPEN(ARG(1) READ) FIL.TEXT = FILEGET(fil.unit) "Read The First Line WHILE fil.text NE NA "Test For End-of-file DO wholetext = JOINLINES(wholetext, fil.text) fil.text = FILEGET(fil.unit) "Read The Next Line DOEND FILECLOSE fil.unit END