ファイル入出力の set に関する考慮事項

データベースと関係のないファイル入出力に関する場合、EGL の set 文を使用すると、レコード変数内のすべてのフィールドを再設定できます。また、IndexRecord ステレオタイプの場合は、ファイル・ポインターの位置を変更できます。

この文を CSVRecord ステレオタイプで使用する場合、許可される形式は set empty のみとなります。

構文

set 文のファイル入出力構文
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

フィードバック