ファイル入出力の set に関する考慮事項
データベースと関係のないファイル入出力に関する場合、EGL の set 文を使用すると、レコード変数内のすべてのフィールドを再設定できます。また、IndexRecord ステレオタイプの場合は、ファイル・ポインターの位置を変更できます。
この文を CSVRecord ステレオタイプで使用する場合、許可される形式は set empty のみとなります。
構文

- recordVariable
- set 文の実行対象となる索引付きレコード変数、相対レコード変数、またはシリアル・レコード変数の名前。
- value
- これは、実行される set 操作のタイプです。
可能な値は以下のとおりです。
- empty
- set 文は、レコード内に含まれるすべてのレコード変数で再帰的に機能し、 構造化レコードの場合には、構造の最下位レベルまで機能します。 個々のフィールドは、その型に応じて設定されます。 これらの値について詳しくは、データの初期化を参照してください。
- initial
- レコード変数は、各フィールドの初期値を指定できます。 initial 修飾子はこれらのフィールドの値を、レコード定義で指定された値に再設定します。 レコード定義に初期値が指定されていない場合の initial 修飾子の効果は empty 修飾子の効果と同じです。
- position
- このキーワードは、IndexedRecord ステレオタイプでのみ使用することができます。
- IndexedRecord ステレオタイプでは、keyItem プロパティーに指定されたフィールドの値により、レコード・ポインターの位置が決まります。 その後、get next 文または get previous 文を使用して、ファイルにアクセスすることができます。 キー・フィールドがゼロに設定されている場合、ファイル・ポインターの位置は最初のレコードの前になります。 キー・フィールドが 16 進数の FF で埋められている場合、ファイル・ポインターの位置は最後のレコードの後ろになります。
例
以下に、索引付きレコードで使用されている set 文の例を示します。
package com.companyb.customer;
Record IndexedRecordExample type IndexedRecord {
fileName = "C:¥¥temp¥¥indexfile.txt",
keyItem = indKey
}
10 indKey INT;
15 indKeyAsHex HEX(8);
10 indTitle CHAR(30);
10 indAuthor CHAR(30);
end
program readall
myIndexedRecord IndexedRecordExample;
Function main()
// indKey を 0 に、他のフィールドをブランクに設定します
set myIndexedRecord empty;
myIndexedRecord.indKeyAsHex = x"FFFFFFFF";
// ファイルの終わりに移動します
set myIndexedRecord position;
...
end // main()
end // program