Im Kontext der Datei-Ein-/Ausgabe ohne Datenbankbezug werden mit der EGL-Anweisung 'get' Datensatzdaten aus einer Datei abgerufen.
Die abgerufenen Daten werden in die Satzvariable eingestellt, die Sie in der Anweisung angeben. Das genaue Verhalten der Anweisung hängt von der Art und Weise ab, wie Sie Ihre Datensatzvariable stereotypisiert haben.

Die einzigen Formate der Anweisung 'get', die Sie zum Angeben eines Datensatzes mit dem Stereotyp 'CSVRecord' verwenden können, sind 'get next' für einzelne Variablen und 'get' für Feldgruppen.
Anschließend liest EGL die nächste Zeile aus der Datei und unterteilt sie in einzelne Zeichenfolgen auf Basis des Werts der Eigenschaft 'delimiter'. Wenn der Datensatz mehr Zeichenfolgen als Felder enthält, werden die überzähligen Zeichenfolgen von EGL ignoriert.
Abschließend verwendet EGL die Zeichenfolgen zum Aktualisieren der Felder im Datensatz. EGL verwendet die vorhandenen Konvertierungsregeln zum Konvertieren der Zeichenfolgen in die entsprechenden Werte. EGL erwartet 'true' (wahr) und 'false' (falsch) als Werte für ein Feld vom Typ BOOLEAN; Groß-/Kleinschreibung wird ignoriert. Wenn einem bestimmten Feld keine Zeichenfolge entspricht, erhält das betreffende Feld einen Nullwert.
Der E/A-Fehlerstatus der Feldgruppe wird auf 'noRecordFound' (kein Datensatz gefunden) gesetzt, wenn die Datei leer ist (es wurden keine Zeilen gelesen, die Größe der Feldgruppe ist Null). Der E/A-Fehlerstatus wird auf 'endOfFile' (Dateiende) gesetzt, wenn die gesamte Datei in die Feldgruppe gelesen wurde.
Nach dem Lesen wird die Datei von EGL geschlossen.
Wenn Sie eine Anweisung 'get' ausgeben, die auf einen Datensatz mit dem Stereotyp 'IndexedRecord' verweist, wird anhand des Schlüsselwerts im Datensatz festgelegt, welcher Datensatz aus der Datei abgerufen wird.
Die Anweisung 'get' (mit der Option 'forUpdate') verhindert, dass der Datensatz von anderen Programmen geändert wird. Weitere Informationen finden Sie unter 'Kompatibilität' in diesem Thema.
1, 2, 2, 2, 3, 4
Jede der nachfolgenden Tabellen zeigt, welche Auswirkungen die Ausführung einer Folge von EGL-Anweisungen auf denselben indexierten Datensatz hat.
| EGL-Anweisungen (in ihrer Reihenfolge) | Schlüssel im indexierten Datensatz | Schlüssel in dem von der Anweisung abgerufenen Dateidatensatz | EGL-Fehlerwert |
|---|---|---|---|
| get | 2 | 2 (erster von dreien) | duplicate |
| get next | Beliebig | 3 | -- |
| EGL-Anweisungen (in ihrer Reihenfolge) | Schlüssel im indexierten Datensatz | Schlüssel in dem von der Anweisung abgerufenen Dateidatensatz | EGL-Fehlerwert |
|---|---|---|---|
| set position | 2 | kein Abruf | -- |
| get next | Beliebig | 2 (erster von dreien) | duplicate |
| get next | Beliebig | 2 (zweiter) | duplicate |
| get next | Beliebig | 2 (dritter) | -- |
| get next | Beliebig | 3 | -- |
1, 2, 2, 2, 3, 4
Jede der nachfolgenden Tabellen zeigt, welche Auswirkungen die Ausführung einer Folge von EGL-Anweisungen auf denselben indexierten Datensatz hat.
| EGL-Anweisungen (in ihrer Reihenfolge) | Schlüssel im indexierten Datensatz | Schlüssel in dem von der Anweisung abgerufenen Dateidatensatz | EGL-Fehlerwert |
|---|---|---|---|
| get | 3 | 3 | -- |
| get previous | Beliebig | 2 (erster von dreien) | duplicate |
| get previous | Beliebig | 2 (zweiter) | duplicate |
| get previous | Beliebig | 2 (dritter) | -- |
| get previous | Beliebig | 1 | -- |
| get previous | Beliebig | -- | endOfFile |
| EGL-Anweisungen (in ihrer Reihenfolge) | Schlüssel im indexierten Datensatz | Schlüssel in dem von der Anweisung abgerufenen Dateidatensatz | EGL-Fehlerwert |
|---|---|---|---|
| set position | 2 | -- | -- |
| get next | Beliebig | 2 (erster) | duplicate |
| get next | Beliebig | 2 (zweiter) | duplicate |
| get previous | Beliebig | 1 | -- |
| get previous | Beliebig | -- | endOfFile |
| EGL-Anweisungen (in ihrer Reihenfolge) | Schlüssel im indexierten Datensatz | Schlüssel in dem von der Anweisung abgerufenen Dateidatensatz | EGL-Fehlerwert |
|---|---|---|---|
| set position | 1 | -- | -- |
| get previous | Beliebig | 1 | -- |
| get previous | Beliebig | -- | endOfFile |
Die Anweisung 'get' ist für serielle Datensätze nicht verfügbar.
myCustomer CustomerRecord; // Datensatzariable erstellen
myCustomer.customerNumber = 1001; // Schlüssel in Datensatzvariablen setzen
try
get myCustomer;
onException(fileErr FileIOException)
myErrorHandler(fileErr); // beendet das Programm
end