Durch diese Zugriffsfunktion wird der angegebene Satzbereich einer bestehenden Arbeitsdatei oder der Kopierpuffer gelöscht.
Das Löschen eines Satzbereichs entspricht der Anweisung @DELETE (Format 1).
Das Löschen des Kopierpuffers entspricht der Kurzanweisung *
im F-Modus.
Löschen eines Satzbereichs
Der Satzbereich wird durch zwei Zeilennummern angegeben:
EDTKEY1
:
Zeilennummer des ersten Satzes des Bereiches
EDTKEY2
:
Zeilennummer des letzten Satzes des Bereiches
Wird in EDTKEY1
der Wert X'0000000000000000'
und in EDTKEY2
der Wert X'FFFFFFFFFFFFFFFF'
angegeben, werden alle Sätze der Arbeitsdatei gelöscht. Dies entspricht der Anweisung @DELETE % - . $ (nicht der Anweisung @DEL ohne Operanden, die alle Werte der Arbeitsdatei zurücksetzt).
Löschen des Kopierpuffers
Im Kontrollblock EDTAMCB
im Feld EAMFILE
muss der Wert C
abgelegt werden.
Der Wert muss linksbündig stehen und mit Leerzeichen aufgefüllt sein.
Die Puffer EDTKEY1
und EDTKEY2
müssen beim Löschen des Kopierpuffers nicht angegeben werden.
Aufruf
Folgende Angaben sind notwendig (siehe Übersichtstabelle):
Versorgen der benötigten Felder in den Kontrollblöcken
EDTGLCB
undEDTAMCB
Versorgen des Puffers
EDTKEY1
Versorgen des Puffers
EDTKEY2
Aufruf der Einsprungadresse
IEDTDEL
mit der Parameterliste
Übersichtstabelle
(Kontrollblöcke siehe Abschnitt „Generierung und Aufbau der Kontrollblöcke“).
Einsprungadresse |
Parameterliste |
Aufrufparameter | Rückkehrparameter | ||
EDTAMCB: | EAMFILE EAMLKEY1 EAMLKEY2 | EDTGLCB: | EGLRETC EGLRMSG |
|
|
Mögliche Returncodes siehe Abschnitt „Logische Satzzugriffsfunktionen“.
Aufruf im C-Programm
Benötigte Include-Dateien:
#include <stdio.h>
#include <iedtgle.h>
Der Kontrollblock EDTAMCB
wird folgendermaßen deklariert und initialisiert:
iedamcb amcb = IEDAMCB_INIT; char key1[] = "08000001"; char key2[] = "99999999"; amcb.length_key1 = amcb.length_key2 = 8;
Wenn beispielsweise die Sätze von der Zeilennummer 800.0001
bis zum Ende der Arbeitsdatei 1 gelöscht werden sollen:
strncpy(amcb.filename,"$1 ",8);
Im C-Programm wird die Funktion IEDTDEL
folgendermaßen aufgerufen:
IEDTDEL(&glcb,&tamcb,key1,key2);