Mit dieser Zugriffsfunktion kann ein Satz in einer Arbeitsdatei markiert werden oder seine Markierung gelöscht werden.
In einer Arbeitsdatei, in der eine Datei real durch @OPEN (Format 2) geöffnet ist, können keine Sätze markiert werden.
Mögliche Satzmarkierungen
Die Satzmarkierungen 1 bis 9 (
EAMMK01bisEAMMK09inEDTAMCB) stehen dem Anwender frei zur Verfügung. Er kann diese Markierungen mit den FunktionenIEDTPUT(Schreiben Satz und Markierungen) undIEDTPTM(Schreiben Satzmarkierung) verändern.
Diese Markierungen können auch durch (Kurz-)Anweisungen gesetzt oder gelöscht werden.Die Satzmarkierung 13 (
EAMMK13inEDTAMCB) hat die Sonderfunktion eines Ignorier-Indikators. Derart markierte Sätze werdenbei der Rückkehr aus dem (mit @DIALOG bzw. @EDIT ONLY eingeleiteten) Benutzerdialog (siehe Abschnitt „IEDTCMD - Ausführen von EDT-Anweisungen“) automatisch gelöscht
beim Schreiben in eine Datei bzw. ein Bibliothekselement nicht übernommen
beim Kopieren von Zeilen nicht kopiert
durch die Satzzugriffsfunktionen
IEDTGETundIEDTPTMnur dann berücksichtigt, wenn im KontrollblockEDTAMCBim FeldEAMFLAGdas KennzeichenEAMIGN13gesetzt ist
Die Satzmarkierung 14 (
EAMMK14inEDTAMCB) hat die Sonderfunktion eines Update-Indikators. Derart markierte Sätze sind im F-Modus überschreibbar, auch wenn dies nicht explizit durch den Dialog-Anwender verlangt wird.Die Satzmarkierung 15 (
EAMMK15inEDTAMCB) hat die Sonderfunktion eines Schreibschutzindikators. Sätze mit Satzmarkierung 15 sind schreibgeschützt. Sie können mit der KurzanweisungXoder [F2]im F-Modus-Bildschirmdialog nicht auf überschreibbar gestellt werden.
Voraussetzung für die Auswertung der Satzmarkierungen 14 und 15 durch den EDT ist die Einstellung von PROTECTION=ON mit der @PAR-Anweisung.
Die Satzmarkierungen 13, 14 und 15 können nur durch die Satzzugriffsfunktionen IEDTPUT und IEDTPTM, nicht aber durch EDT-Anweisungen verändert werden.
Durch Ändern des Satzes im Dialog (d.h. Eingabe von Daten im Datenfenster) werden die Satzmarkierungen 13, 14 und 15 gelöscht.
Die Zeilennummer des zu markierenden Satzes muss im Feld EDTKEY angegeben werden.
Das Setzen der Markierung wird als logisches ODER realisiert. Sind alle Bits (auch die undefinierten) in EAMMMARK gleich Null, wird die Markierung gelöscht.
Existiert kein Satz mit der angegebenen Satznummer, wird der Aufruf mit Returncode abgewiesen.
Aufruf
Folgende Angaben sind notwendig (siehe Übersichtstabelle):
Versorgen der benötigten Felder in den Kontrollblöcken
EDTGLCBundEDTAMCBVersorgen des Puffers
EDTKEYAufruf der Einsprungadresse
IEDTPTMmit der Parameterliste
Übersichtstabelle
(Kontrollblöcke siehe Abschnitt „Generierung und Aufbau der Kontrollblöcke“).
Einsprungadresse |
Parameterliste |
Aufrufparameter | Rückkehrparameter | ||
EDTGLCB: | EGLUNIT EGLVERS | EDTGLCB: | EGLRETC EGLRMSG |
EDTAMCB: | EAMUNIT EAMVERS EAMFLAG EAMFILE EAMMARK EAMLKEY | ||
|
| ||
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 key[8]; IEDAMCB_SET_NO_MARKS(amcb); amcb.length_key = 8;
Wenn beispielsweise ein Satz mit der Zeilennummer 123.4 in der Arbeitsdatei 1 im F-Modus überschreibbar dargestellt werden soll (Satzmarkierung 14):
strncpy(amcb.filename,"$1 ",8); strncpy(key,"01234000",8); MARK_14(amcb) = 1;
Im C-Programm wird die Funktion IEDTPTM folgendermaßen aufgerufen:
IEDTPTM(&glcb,&amcb,key);