データベースと関係のないファイル入出力の場合、EGL の get ステートメントは、ファイルからレコード・データを取り出します。
取り出したデータは、ステートメント内で指定したレコード変数に送られます。このステートメントの正確な動作は、レコード変数をステレオタイプ化した際の方法によって異なります。

CSVRecord ステレオタイプによるレコードを指定する場合に使用できる get ステートメントの形式は、get next (単一変数の場合) と get (配列の場合) のみです。
EGL は続いてファイルの次の行を読み取り、delimiter プロパティーの値を基に別個の文字列に分割します。レコードのフィールドよりも多くの文字列がある場合、EGL では余分な文字列は無視されます。
最後に、EGL は文字列を使用して、レコードのフィールドを更新します。EGL は、既存の変換規則を使用して、文字列を適切な値に変換します。EGL では BOOLEAN フィールドの値として「true」および「false」が想定されます。大文字小文字の区別は無視されます。特定のフィールドに対応する文字列がない場合、そのフィールドは NULL 値を受け取ります。
ファイルが空の場合、配列の I/O エラー状況が noRecordFound に設定されます (行の読み取りは行われない。配列のサイズがゼロ)。ファイル全体が配列に読み込まれると、 I/O エラー状況は endOfFile に設定されます。
EGL は、読み取り後、ファイルを閉じます。
IndexedRecord ステレオタイプのレコードを参照する get 文を発行するときは、 レコードのキー値によって、ファイルから検索されるレコードが決定されます。
(forUpdate オプションを指定した) get 文を実行すると、他のプログラムはレコードを変更できなくなります。詳しくは、このトピックの『互換性』を参照してください。
1, 2, 2, 2, 3, 4
以下の各表は、同じ索引付きレコードに対して一連の EGL 文を実行する場合の効果を示しています。
| EGL 文 (実行順) | 索引付きレコード内のキー | 文によって検索されるファイル・レコード内のキー | EGL のエラー値 |
|---|---|---|---|
| get | 2 | 2 (3 つある内の最初のもの) | 重複 |
| get next | any | 3 | -- |
| EGL 文 (実行順) | 索引付きレコード内のキー | 文によって検索されるファイル・レコード内のキー | EGL のエラー値 |
|---|---|---|---|
| set position | 2 | 検索されない | -- |
| get next | any | 2 (3 つある内の最初のもの) | 重複 |
| get next | any | 2 (2 番目のもの) | 重複 |
| get next | any | 2 (3 番目のもの) | -- |
| get next | any | 3 | -- |
1, 2, 2, 2, 3, 4
以下の各表は、同じ索引付きレコードに対して一連の EGL 文を実行する場合の効果を示しています。
| EGL 文 (実行順) | 索引付きレコード内のキー | 文によって検索されるファイル・レコード内のキー | EGL のエラー値 |
|---|---|---|---|
| get | 3 | 3 | -- |
| get previous | any | 2 (3 つある内の最初のもの) | 重複 |
| get previous | any | 2 (2 番目のもの) | 重複 |
| get previous | any | 2 (3 番目のもの) | -- |
| get previous | any | 1 | -- |
| get previous | any | -- | endOfFile |
| EGL 文 (実行順) | 索引付きレコード内のキー | 文によって検索されるファイル・レコード内のキー | EGL のエラー値 |
|---|---|---|---|
| set position | 2 | -- | -- |
| get next | any | 2 (最初のもの) | 重複 |
| get next | any | 2 (2 番目のもの) | 重複 |
| get previous | any | 1 | -- |
| get previous | any | -- | endOfFile |
| EGL 文 (実行順) | 索引付きレコード内のキー | 文によって検索されるファイル・レコード内のキー | EGL のエラー値 |
|---|---|---|---|
| set position | 1 | -- | -- |
| get previous | any | 1 | -- |
| get previous | any | -- | endOfFile |
get 文は、シリアル・レコードには使用できません。
myCustomer CustomerRecord; // レコード変数を作成する
myCustomer.customerNumber = 1001; // レコード変数にキーを設定する
try
get myCustomer;
onException(fileErr FileIOException)
myErrorHandler(fileErr); // プログラムを終了する
end