Dieser Abschnitt behandelt folgende Themen:
Diese API ermöglicht Ihnen den Zugriff auf Unix- und Windows-Dateien aus Natural-Programmen.
CALLNAT 'NOPUNX1N' NOPUNX1A
Zum Aufruf von NOPUNX1N
wird die Parameter Data Area
NOPUNX1A
zur Verfügung gestellt.
Beschreibung der Parameter in NOPUNX1A
:
Parameter | Format | Verwendung | ||
---|---|---|---|---|
OBJECT |
A16 | ein | Mögliche Werte: USER
oder FILE
|
|
FUNCTION
|
A8 | ein | Mögliche Werte für USER :
|
|
LOGON |
Bei einem Knoten anmelden | |||
LOGOFF
|
Bei einem Knoten abmelden. | |||
Mögliche Werte für FILE :
|
||||
COPY |
Datei kopieren. | |||
CLOSE |
Datei schließen. | |||
DELETE |
Datei löschen. | |||
DIR |
Datei-Liste. | |||
MOVE |
Datei verschieben (oder umbenennen). | |||
READ |
Datei lesen. | |||
SCAN |
In ein Datei nach Strings suchen . | |||
WRITE |
Datei schreiben. | |||
RETURN-CODE |
N8 | aus | 0 | Funktion war ok. Anderer Wert: siehe Inhalt von
RETURN-TEXT
|
RETURN-TEXT |
A80 | aus | ||
NODE |
N5 | ein | Knoten, wie in Entire Operations definiert. | |
NODE-NAME |
A16 | ein | Knoten-Name
|
|
NODE-ACCESS-MODE |
A1 | nur von der API zu ändern | leer | Noch nicht geprüft. |
N |
Knoten ist nicht lokal. | |||
Y |
Knoten ist lokal . | |||
Dieses Feld wird von der API bei
USER / LOGON gesetzt. Es soll von der Anwendung nicht
geändert werden.
|
||||
USERID |
A20 | ein | Benutzerkennung für Logon. | |
GROUP |
A20 | ein | Optional: | |
UNIX | Group für Logon. | |||
Windows | Domäne für Logon. | |||
PASSWORD |
A16 | ein | Passwort für Logon.
Anmerkung: |
|
SID |
N10 | nur von der API zu ändern | Session
ID von Entire System Server.
Dieses Feld wird von der API bei |
|
UID |
A10 | nur von der API zu ändern | Interne
Benutzerkennung des Betriebssystems.
Dieses Feld wird von der API bei |
|
GID |
A10 | nur von der API zu ändern | Interne
Benutzerkennung des Betriebssystems.
Dieses Feld wird von der API bei |
|
ESC-TRIGRAPH |
A1 | ein | Trigraph-Verwendung: | |
leer oder N | Keine Trigraph-Konvertierung . | |||
Y
|
Fragezeichen (?) als Trigraph-Escape verwenden | |||
anderes Zeichen | Dieses Zeichen als Trigraph-Escape verwenden . | |||
TRACE-LE VEL
|
N1 | ein | 0 |
Kein Trace. |
> 0 |
Trace eingeschaltet. | |||
TRACE-TARGET |
A1 | ein | Gibt an, wohin der Trace geschrieben werden soll. | |
S |
SYSOUT | |||
L |
Entire Operations-Protokoll (NOP Log) | |||
B |
Beide: SYSOUT und Entire Operations-Protokoll (NOP Log). | |||
Nur
relevant, wenn TRACE-LEVEL > 0.
|
||||
OBJECT-AREA |
A1200 | - | Objekt-spezifische Felder. | |
Objekt: FILE
(Redefinition von OBJECT-AREA )
|
||||
F-FILE |
A250 | ein | Dateiname.
Der Dateiname ist vollqualifiziert anzugeben, d.h. als kompletter Pfad ab Basis des Dateisystems. Der Dateiname darf Umgebungsvariablen enthalten. |
|
F-HANDLE |
N10 | nur von der API zu ändern | Datei-Handle.
Wird vom Entire System Server beim ersten Zugriff auf die Datei
vergeben; gilt bis |
|
F-LINE |
N10 | ein/aus | ein | Zeilennummer, ab der gelesen werden soll (0 oder 1: ab Dateibeginn lesen) |
aus | (letzte) gelesene Zeilennummer. | |||
F-NUMBER-RECORDS |
N10 | aus | Anzahl der gelesenen Datensätze. | |
F-SEARCH-TEXT |
A100 | ein | Nur FILE /
SCAN : Text, nach dem in der Datei gesucht werden soll.
|
|
F-RECORD-BUFFER |
A600 | ein/aus | Gesamter Record-Buffer
(Redefinition von F-RECORD-BUFFER )
|
|
F-RECORD-250 |
A250 | ein/aus | FILE / READ ,
FILE / WRITE : Effektiver Datensatz .
|
Die API ist unter Entire Operations auf Großrechnern und Entire Operations auf Open Systems (UNIX + Windows) einsetzbar.
Mit der API kann nur auf UNIX- und Windows-Knoten zugegriffen werden.
In der verwendeten Natural-Umgebung müssen als Steplibs SYSEOR und die von SYSEOR verwendeten Steplibs definiert sein.
Die von Entire Operations verwendeten Systemdateien (System File 1,
SAT Log File) müssen über LFILE
-Zuweisung definiert
sein.
Im folgenden bedeutet der Aufruf OBJECT / FUNCTION
(z.B.
USER / LOGON
) den Aufruf von NOPUNX1N
mit dem
angebenen Objekt und der angegebenen Funktion.
Windows-Dateinamen können auch mit normalen Schrägstrich-Zeichen (/) anstelle des umgekehrten Schrägstrichs (\) angegeben werden.
c:/work/file1.txt
ist gleichbedeutend mit
c:\work\datei1.txt
Alle Datei-Operationen funktionieren nur innerhalb einer gültigen Session.
Die Session wird mit USER / LOGON
aufgebaut und mit
USER / LOGOFF
beendet.
Während der Session dürfen SESSION-ID
, UID
,
GID
nicht geändert werden.
USER / LOGON FILE / ... FILE / ... ... USER / LOGOFF
Dateien brauchen nicht explizit geöffnet zu werden. Das wird beim
ersten Zugriff mit FILE / READ
oder FILE / WRITE
automatisch ausgeführt.
Nach dem Lesen oder Schreiben einer Datei muss die Datei mit
FILE / CLOSE
geschlossen werden.
Nach jedem Aufruf von NOPUNX1N
ist der Fehlercode in
NOPUNX1A.RETURN-CODE
zu überprüfen. In
NOPUNX1A.RETURN-TEXT
wird ein Fehlertext zurückgegeben.
Mit der Funktion FILE/READ
wird eine Datei sequenziell
gelesen.
In NOPUNX1A.F-LINE
kann eine Startzeile übergeben
werden.
Wenn NOPUNX1A.F-LINE
den Wert 0
(Null) oder 1
enthält, wird ab Dateibeginn gelesen.
USER / LOGON R1. repeat FILE / READ if (NOPUNX1A.RETURN-CODE ne 0) escape bottom (R1.) end-if ... Record behandeln end-repeat /* R1. FILE / CLOSE USER / LOGOFF
Mit der Funktion FILE / SCAN
ist es möglich, eine Datei
gezielt nach einer bestimmten Zeichenkette zu durchsuchen. Der Suchzeichenkette
muss in NOPUNX1A.F-SEARCH-TEXT
übergeben werden.
USER / LOGON R1. repeat FILE / SCAN if (NOPUNX1A.RETURN-CODE ne 0) escape bottom (R1.) end-if ... Record behandeln add 1 to NOPUNX1A.F-LINE * -- Startzeile für Folge-Scan end-repeat /* R1. FILE / CLOSE USER / LOGOFF
Mit der Funktion FILE / WRITE
wird eine Datei sequenziell
geschrieben.
USER / LOGON R1. repeat ... allocate record in NOPUNX1A.F-RECORD-250 FILE / WRITE if (...) escape bottom (R1.) end-if end-repeat /* R1. FILE / CLOSE USER / LOGOFF
Mit FILE / DELETE
kann man eine oder mehrere Dateien
löschen.
Wenn F-FILE
ein Platzhalterzeichen (*) enthält, werden alle
Dateien gelöscht, für die das Platzhalterzeichen zutrifft.
Für FILE / COPY
wird die Zieldatei in
F-RECORD-250
übergeben.
Für FILE / MOVE
wird die Zieldatei in
F-RECORD-250
übergeben.
Zur Existenzprüfung einer Datei kann die Funktion FILE /
DIR
mit einem eindeutigen Dateinamen verwendet werden. Wenn in
NOPUNX1A.RETURN-CODE eine Null zurückgegeben wird, so existiert die Datei.
Mit FILE / DIR
können Sie Dateilisten für ein Verzeichnis
erstellen.
Mit dem in NOPUNX1A.F-FILE
bereitgestellten
Platzhalterzeichen-Ausdruck können Sie die Liste eingrenzen.
/tmp/* |
Alle Dateien im Verzeichnis
/tmp .
|
/tmp/*.txt |
Dateien im Verzeichnis /tmp , die mit
.txt enden.
|
Die Dateinamen werden in F-RECORD-BUFFER
zurückgegeben. Die
Namen sind durch Semikolon (;) getrennt.
Als Beispiel für die Separierung siehe SHOW-DIR-BUFFER
(weiter unten).
Wenn der Buffer für die Dateinamen nicht ausgereicht hat, wird in
NOPUNX1A.RETURN-CODE
der Wert 19
(more
objects
) zurückgegeben.
Dateiename mit Platzhalterzeichen (Wildcard-Notation).
USER / LOGON ... allocate file name (with wildcard) in NOPUNX1A.F-FILE R1. repeat FILE / DIR decide on first value of NOPUNX1A.RETURN-CODE value 0, 19 /* 0: ok, 19: more objects perform SHOW-DIR-BUFFER none value ignore end-decide if NOPUNX1A.RETURN-CODE ne 19 escape bottom (R1.) end-if add 1 to NOPUNX1A.F-LINE end-repeat /* R1. FILE / CLOSE USER / LOGOFF * --------------------------------------------------------------------- DEFINE SUBROUTINE SHOW-DIR-BUFFER * --------------- * -- Function FILE / DIR: * -- The record buffer contains a file list, with delimiter ';' * -- This routine separates the single file names out of the buffer. * -- #DIR-FILE and #DIR-REST should be declared as (A600) * SDB1. REPEAT EXAMINE NOPUNX1A.F-RECORD-BUFFER FOR ';' REPLACE FIRST WITH ':' SEPARATE NOPUNX1A.F-RECORD-BUFFER INTO #DIR-FILE #DIR-REST WITH DELIMITER ':' * -- now #DIR-FILE contains a single file name, without qualifiers IF #DIR-REST = ' ' ESCAPE BOTTOM (SDB1.) END-IF NOPUNX1A.F-RECORD-BUFFER := #DIR-REST END-REPEAT /* SDB1. END-SUBROUTINE