Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

@GET - Einlesen einer ISAM-Datei

&pagelevel(3)&pagelevel

Mit der Anweisung @GET wird eine ISAM-Datei von Platte ganz oder teilweise in die aktuelle Arbeitsdatei eingelesen.

Operation

Operanden

F-Modus, L-Modus

@GET

[file] [(ver)] [lines[,...]] [:cols[,...]:] [NORESEQ]

file

Name der ISAM-Datei, die eingelesen werden soll. Der Name muss dem
SDF-Datentyp <filename 1..54> entsprechen oder die spezielle Angabe
'/' sein.

Besteht noch kein lokaler @FILE-Eintrag für die Arbeitsdatei, so wird der
angegebene Dateiname bei Erfolg als impliziter lokaler @FILE-Eintrag
eingetragen. Fehlt der Operand file, so wird, falls vorhanden, der explizite
lokale @FILE-Eintrag und andernfalls der globale @FILE-Eintrag als Dateiname
herangezogen (siehe auch @FILE-Anweisung). Ist weder ein expliziter
lokaler noch ein globaler @FILE-Eintrag definiert (z.B. nur ein impliziter
lokaler @FILE-Eintrag), wird die Anweisung @GET mit der Fehlermeldung
EDT5484 abgewiesen.

Existiert die angegebene Datei nicht oder ist sie nicht wie erforderlich
zugreifbar, wird die Anweisung mit einer entsprechenden Fehlermeldung
abgewiesen.

Wenn der Dateikettungsname EDTISAM einer Datei zugeordnet ist, genügt
die Angabe '/', um diese Datei einzulesen (siehe Kapitel „Dateibearbeitung“).

ver

Versionsnummer der einzulesenden Datei. Stimmt die angegebene
Versionsnummer nicht mit der Versionsnummer der Datei überein, wird die
Meldung EDT0902 ausgegeben, die Datei aber trotzdem eingelesen.

lines

Einer oder mehrere Zeilenbereiche, die aus der ISAM-Datei eingelesen
werden sollen. Werden symbolische Zeilennummern angegeben, werden
deren Werte aus der aktuellen Arbeitsdatei bestimmt, haben also normalerweise
nichts mit der Satzstruktur der bei file angegebenen Datei zu tun.

Wird lines nicht angegeben, wird die gesamte Datei eingelesen.

Die mit lines angegebenen Zeilennummern beziehen sich immer auf die
Satzschlüssel, auch wenn diese nicht als Zeilennummern übernommen
werden. Es erfolgt also bei Angabe von lines immer auch eine
Überprüfung auf gültige Satzschlüssel (siehe NORESEQ).

cols

Einer oder mehrere Spaltenbereiche, durch die der einzulesende Bereich
jedes Satzes festgelegt wird. Wiederholungen und Überlappungen der
Bereiche sind erlaubt. Die Spaltenangaben beziehen sich auf die Zeichen
in der einzulesenden Datei.
Bei Dateien, die in einem Unicode-Zeichensatz vorliegen, stimmt das
zumeist nicht mit der Byteposition innerhalb eines Satzes überein. Werden
Spaltenwerte angegeben, die die Länge eines Satzes überschreiten, so
werden dafür Leerzeichen in die Arbeitsdatei eingelesen.
Die Spaltenzählung beginnt erst hinter dem Satzschlüssel.

Wird kein Spaltenbereich angegeben, werden die Zeilen in voller Länge
eingelesen.

NORESEQ

Die Zeilennummern werden aus den ISAM-Schlüsseln der eingelesenen
ISAM-Datei gebildet. Dabei können Zeilen mit bereits vorhandener Zeilennummer
überschrieben werden.

Der EDT prüft dabei, ob im Satzschlüssel eine gültige Zeilennummer steht.
Gültig heißt, dass der Schlüssel nur aus den Ziffern 0 bis 9 bestehen darf,
sonst wird die Anweisung @GET mit der Fehlermeldung EDT4984
abgebrochen. Die bis zu diesem Zeitpunkt gelesenen Sätze werden in die
Arbeitsdatei übernommen. Hat ein Satz den Schlüssel 0, dann wird er wie
ein Satz mit dem Schlüssel 1 (Zeilennummer 0.0001) behandelt und die
Warnung EDT2900 ausgegeben.

Wird NORESEQ nicht angegeben, werden die Zeilennummern abhängig von
der aktuellen Zeilennummer und der aktuellen Schrittweite vergeben (siehe
Abschnitt „Zeilennummernvergabe“).

Die Datei ist nur während des Lesevorgangs geöffnet. Datensätze, die nur aus dem Schlüssel bestehen, werden als leere Zeilen eingelesen. Ist die einzulesende Datei leer, wird die Warnung EDT2903 ausgegeben.

Ist die aktuelle Arbeitsdatei leer und hat den Zeichensatz *NONE, erhält die Arbeitsdatei den Zeichensatz der einzulesenden Datei. Ist dieser *NONE, erhält die Arbeitsdatei den Zeichensatz EDF03IRV.

Hat die Arbeitsdatei bereits einen Zeichensatz, dann werden die einzulesenden Sätze vom Zeichensatz der Datei in den Zeichensatz der Arbeitsdatei konvertiert. Enthält die einzulesende Datei Zeichen, die im Zeichensatz der Arbeitsdatei nicht darstellbar sind, werden diese durch ein Ersatzzeichen ersetzt, sofern ein solches spezifiziert ist (siehe @PAR SUBSTITUTION-CHARACTER), andernfalls wird das Lesen der Datei abgebrochen und die Fehlermeldung EDT5453 ausgegeben. Dies gilt auch, falls sich das ungültige Zeichen außerhalb des einzulesenden Spaltenbereichs befindet. Ungültige Zeichen außerhalb des einzulesenden Zeilenbereichs werden hingegen ignoriert.

Liegt die Datei in einem Unicode-Zeichensatz vor und enthält sie ungültige Bytefolgen, z.B. Surrogate-Zeichen, kann sie auch bei Angabe eines SUBSTITUTION-CHARACTERS nicht eingelesen werden. In diesem Fall wird das Lesen mit der Meldung EDT5454 abgewiesen.

Wird die Anweisung mit [K2] unterbrochen und der EDT-Lauf mit /INFORM-PROGRAM fortgesetzt, so wird die Bearbeitung der Anweisung abgebrochen und die Meldung EDT5501 ausgegeben.

Hinweis

Wird versucht, mit @GET eine SAM-Datei einzulesen, gibt der EDT die Fehlermeldung EDT1902 aus und setzt den Schalter für EDT-Fehler. Er liest die angegebene Datei aber trotzdem ein, indem intern ein @READ für diese Datei ausgeführt wird. Die Operanden lines bzw. NORESEQ werden in diesem Fall ignoriert.