Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

IEDTPUT - Schreiben eines Satzes

&pagelevel(4)&pagelevel

Diese Zugriffsfunktion speichert einen Satz (EDTREC) mit einer Markierung (EAMMARK im EDTAMCB) in einer Arbeitsdatei unter der angegebenen Zeilennummer (EDTKEY).

Ist bereits ein Satz mit dieser Zeilennummer vorhanden, wird er einschließlich seiner Markierungen (siehe Abschnitt „IEDTPTM - Markieren eines Satzes“) ersetzt.

Im Feld EGLCCSN (EDTGLCB) ist der Zeichensatz anzugeben, in dem der Satz bereitgestellt wird.

Ist beim Schreiben eines Satzes mit IEDTPUT das Kennzeichen EAMNOMOD im Kontrollblock EDTAMCB im Feld EAMFLAG gesetzt, so wird die Arbeitsdatei nicht als modifiziert gekennzeichnet, obwohl ein Satz aufgenommen wird. Dadurch erkennt das aufrufende Programm leichter, ob ein Anwender die Arbeitsdatei im Dialog geändert hat (durch Abfrage des Feldes EPLMODIF im Kontrollblock EDTPARL). Außerdem entfällt eine unnötige Sicherungsabfrage des EDT bei der Anweisung @HALT, wenn im Dialog nichts geändert wurde.

Aufruf

Folgende Angaben sind notwendig (siehe Übersichtstabelle):

  • Versorgen der benötigten Felder in den Kontrollblöcken EDTGLCB und EDTAMCB

  • Versorgen des Puffers EDTKEY

  • Versorgen des Puffers EDTREC

  • Aufruf der Einsprungadresse IEDTPUT mit der Parameterliste

Übersichtstabelle

(Kontrollblöcke siehe Abschnitt „Generierung und Aufbau der Kontrollblöcke“).

Einsprungadresse    :     IEDTPUT

Parameterliste      :     A (EDTGLCB, EDTAMCB, EDTKEY, EDTREC)

Aufrufparameter

Rückkehrparameter

EDTGLCB:EGLUNIT
EGLVERS
EGLCCSN
EDTGLCB:EGLRETC
EGLRMSG

EDTAMCB: 

EAMUNIT
EAMVERS
EAMFLAG
EAMFILE
EAMMARK
EAMLKEY
EAMLREC

 


EDTKEY
EDTREC



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 (der Wert 4096 ist hier als Beispiel für die maximal erwartete Satzlänge gewählt):

iedamcb amcb = IEDAMCB_INIT;
char key[8];
char rec[4096];
IEDAMCB_SET_NO_MARKS(amcb);
amcb.length_key = 8;

Wenn beispielsweise ein Satz mit der Zeilennummer 75 in die Arbeitsdatei 0 geschrieben werden soll:

strncpy(rec,"Das ist der Inhalt des Satzes",29); 
strncpy(key,"00750000",8);
strncpy(amcb.filename,"$0     ",8);
amcb.length_rec = 29;

Im C-Programm wird die Funktion IEDTPUT folgendermaßen aufgerufen:

IEDTPUT(&glcb,&amcb,key,rec);