READ 'ft | batch R=remote-file [L=local-file] [ M=mode ] [ authorisation ] [ FP=fpass ]
[ par1 par2 ....]' [OPEN] [rngcol] [BINARY [rngbyte] ]
READ str-var [OPEN] [rngcol] [BINARY [rngbyte] ]
Mit diesem Format des READ-Kommandos wird zuerst mit dem internen Filetransfer des EDT eine Datei von einem entfernten Rechner übertragen bzw. mit einer Batch-Prozedur verarbeitet. Diese lokale Datei wird dann in den Arbeitsbereich eingelesen. Für den Filetransfer ist keine zusätzliche Software auf dem PC notwendig.
Beim Lesen der höchsten Version eines Bibliothekelements wird die Versionsnummer im Reiter angezeigt und auch für eventuell folgende Schreibaktionen verwendet. Handelt es sich bei der höchsten Version um die Standardversion (X'FF' bzw. @), wird aus Kompatibilitätsgründen kein @ angezeigt
str-var String-Variable, die alle Parameter innerhalb der Hochkommas enthält.
Filetransfer-Profil
ft Name eines Filetransfer-Profils, das mit dem Menübefehl Extras/Filetransfer.... (S. 1) definiert werden kann. Aus den Parametern des Kommandos und den Angaben aus dem Profil wird die Schnittstelle des internen EDT-Filetransfers erzeugt und der Filetransfer gestartet.
Sind Profile vorhanden, die in mehreren INI-Dateien mit dem gleichen Namen enthalten sind, kann durch Voranstellen der Dateinummer (1, 2 oder 3) die entsprechende INI-Datei angegeben werden.
Beispiel:
1std = Profil STD aus der privaten INI-Datei
2std = Profil STD aus der INI-Datei vom Windowsverzeichnis
3std = Profil STD aus der INI-Datei vom Ladeverzeichnis.
batch Dateiname der Batchdatei. Die Extension ".BAT" muss hierbei nicht angegeben werden. Die Batch-Prozedur wird mit folgenden Parametern gestartet:
batch-file par1 par2 .....
Zusätzlich werden folgende Umgebungs-Variablen vor dem Aufruf der Batch-Prozedur gesetzt:
call:       "R"
locfile:
Name der lokalen Datei
remfile:    Name der entfernten Datei
lpass:      Logon-Passwort
fpass:      Datei-Passwort
Die Angabe von "R" in der Variablen call bedeutet, dass die Batch-file von dem Kommando READ aufgerufen wurde.
Lokale Datei
local-file Dateiname der zu erzeugenden Datei auf dem lokalen Rechner. Ist dieser Parameter nicht angegeben, wird eine temporäre Datei erzeugt, die nach dem Filetransfer gelöscht wird.
Entfernte Datei
remote-file bs2-file | lib([typ/]elem[/version]) | /posix-file | mvs-file
bs2-file Dateiname auf dem fernen Rechner, ggf. einschl. CAT-ID und User-ID. Es kann auch eine Generation aus einer Dateigenerationsgruppe in der BS2000-Syntax angegeben werden (z.B. fgg(*0003)).
lib Name der PLAM-Bibliothek auf dem fernen Rechner.
typ Typ des PLAM-Elements. Es sind nur die Angaben S, M, J, P und D zulässig. Wird kein Typ angegeben, so wird der Typ "S" als Standard benutzt.
elem Name des PLAM-Elements. Delta-geführte Elemente können vom openFT-BS2000 nur gelesen werden.
version Version des PLAM-Elements. Fehlt die Version, wird die höchste Version des Elements benutzt.
/posix-file Beginnt der Dateinamen mit dem Zeichen "/", so wird die Datei automatisch von dem entsprechenden POSIX-Dateisystem gelesen. Es ist immer der Dateiname ab ROOT anzugeben. Beim Filetransfer mit FTP muss im Filetransfer-Profil der Typ FTP-POSIX ausgewählt werden.
mvs-file data-set | pds(member) | 'hlq.data-set' | 'hlq.pds(member)'
Bei der Variante read'profile r=mvsfile' müssen die Hochkommas verdoppelt werden, weil der ganze Parameter bereits ein String in Hochkommas ist. Soweit alle Angaben in einer Stringvariablen stehen, dürfen die Hochkommas nicht verdoppelt werden. Soll z.B. eine Datei aus der FSTAT-Liste eingelesen werden, so muss lediglich der Inhalt aus der Spalte 1-256 in eine Stringvariable übertragen werden. Dann kann die Datei mit dem Befehl read strvar eingelesen werden.
Um die Angabe der doppelten Hochkommas zu umgehen, können auch folgende alternative Formate angegeben werden:
mvs:hlq.data-set | mvs:hlq.pds(member)   oder
$hlq.data-set | $hlq.pds(member)
data-set Dateiname auf dem fernen Rechner ohne HLQ (high level qualifier). Vom Host-System wird der Dataset-Name automatisch um den HLQ ergänzt.
pds(member) Member eines PDS (Partioned Data Set) oder PDSE (Partioned Data Set Extended) ohne HLQ. Vom Host-System wird der Member-Name automatisch um den HLQ ergänzt.
'hlq.data-set' | mvs:hlq.data-set | $hlq.data-set
Vollqualifizierter Dateiname auf dem fernen Rechner. Aus diesem String wird für den Filetransfer der Dateiname 'hlq.data-set' erzeugt.
'hlq.pds(member)' | mvs:hlq.pds(member) | $hlq.pds(member)
Vollqualifiziertes Member eines PDS (Partioned Data Set) oder PDSE (Partioned Data Set Extended). Aus diesem String wird für den Filetransfer der Dateiname 'hlq.pds(member)'erzeugt.
Zugangsdaten
Die Zugangsdaten können im Filetransfer-Profil (Extras/Filetransfer.... (S. 1) ) definiert werden oder bei den Kommandos FILE (S. 1), READ (S. 1) und WRITE (S. 1) angegeben werden. Es ist auch möglich, einen Teile der Zugangsdaten im Profil und einen Teil bei den Kommandos anzugeben.
authorisation [ LH=host ] [ LU=user ] [ LA=account ] [ LP=lpass|? ] oder
TA=ta
host | ? Host-Name für den Zugang zum entfernten Rechner. Der Hostname kann auch im Filetransfer-Profil angegeben werden. Wird ein Fragezeichen angegeben, so werden noch fehlende Zugangsdaten nach dem Absenden des Kommandos angefordert.
user | ? User-ID für den Zugang zum entfernten Rechner. Die User-ID kann auch im Filetransfer-Profil angegeben werden. Wird ein Fragezeichen angegeben, so werden noch fehlende Zugangsdaten nach dem Absenden des Kommandos angefordert.
acount | ? Abrechnungs-Nummer für den Zugang zum entfernten Rechner. Die Abrechnungs-Nummer kann auch im Filetransfer-Profil angegeben werden. Wird ein Fragezeichen angegeben, so werden noch fehlende Zugangsdaten nach dem Absenden des Kommandos angefordert.
lpass | ? Logon-Passwort für den Zugang zum entfernten Rechner im Format pass oder X''pass'' (Hochkommas müssen verdoppelt werden, weil das Passwort bereits Teil eines Strings in Hochkommas ist). Das Passwort kann auch im Filetransfer-Profil angegeben werden. Wird für lpass ein Fragezeichen angegeben, so wird das Passwort nach dem Absenden des Kommandos in einem dunkel gesteuerten Feld angefordert.
ta | ? Transfer-Admission des FTAC-Profils für den Zugang zum entfernten Rechner. FTAC-Profile können mit der Software FTAC erstellt werden. Die Transfer-Admission muss mindestens 8 Stellen und darf höchstens 32 Stellen lang sein. Enthält der Name Blanks, muss er in Hochkommas eingegeben werden. Die Transfer-Admission kann auch im Filetransfer-Profil angegeben werden. Wird ein Fragezeichen angegeben, so werden noch fehlende Zugangsdaten nach dem Absenden des Kommandos angefordert.
fpass|? File-Passwort im Format pass oder X''pass'' (Hochkommas müssen verdoppelt werden, weil das Passwort bereits Teil eines Strings in Hochkommas ist). Das Passwort kann auch im Filetransfer-Profil angegeben werden. Wird für fpass ein Fragezeichen angegeben, so wird das Passwort nach dem Absenden des Kommandos in einem dunkel gesteuerten Feld angefordert.
Übertragungsmodus
mode Transfer-Modus. Diese Angabe besteht aus den 2 Information:
a) Übertragungsmodus Text/Binär:
Text-Modus bedeutet, dass die Daten mit der Standard-Translatetabelle bzw. der Translatetabelle, die im FT-Profil angegeben ist, übersetzt werden (ANSI <--> EBCDIC/ASCII).
Im Binär-Modus werden die Daten transparent ohne Übersetzung übertragen. Es sind drei verschiedene Modi zu unterscheiden:
a) Binär satzstrukturiert für openFT-BS2000 (M=B)
b) Binär undefiniert für openFT-BS2000 (M=U)
c) Binär für FTP (M=B)
Nach dem Einlesen der Datei in den Arbeitsbereich wird die Codierung automatisch auf den entsprechenden Code umgeschaltet (wie Kommando  EBCDIC
Gilt nur für openFT: In der lokalen Datei (Name wird entweder vom EDT vergeben oder Name aus "L=file") werden die Daten mit 4 Byte Satzlängenfeld ohne Satzende-Kennzeichen gespeichert. Dadurch ist es möglich, dass in einem Satz auch das BS2000-Satzende-Kennzeichen (X'15') oder das Unix-Satzende-Kennzeichen (X'0A') vorkommen kann.
Im Filetransfer-Profil kann der Übertragungsmodus ebenfalls eingestellt werden. Wird beim Kommando READ nichts angegeben, so gilt die Einstellung des FT-Profils. Wird beim Kommando WRITE nichts angegeben, so gilt entweder der Übertragungsmodus des vorhergehenden READ oder die Einstellung des FT-Profils, falls eine lokale oder neue Datei ohne vorhergehenden READ auf den fernen Rechner übertragen wird.
b) Feste/Variable Satzlänge. Soll eine Datei mit fester Satzlänge erzeugt werden, müssen alle Zeilen im Arbeitsbereich exakt die richtige Länge haben.
Folgende Werte sind zulässig bei openFT_BS2-Profilen:
T Text-Modus (Standardeinstellung). Mit dieser Option können Dateien mit fester oder variabler Satzlänge gelesen und geschrieben werden. Beim Schreiben ohne weitere Formatangabe wird die ferne Datei allerdings mit dem Format "Variable Satzlänge" erzeugt.
TFnnn
Text-Modus feste Satzlänge. Die Datei wird mit RECFORM=F und RECSIZE=nnn gelesen bzw. erstellt. Wurde diese Option beim Lesen angegeben, so wird beim Schreiben ohne Parameter automatisch das gleiche Dateiformat erzeugt.
TV Text-Modus, variable Satzlänge (gilt nur für openFT-BS2000). Diese Angabe ist nur beim Schreiben notwendig, falls nach dem Lesen einer Datei mit fester Satzlänge eine Datei mit variabler Satzlänge erzeugt werden soll.
B Binär-Modus. Mit dieser Option können Dateien mit fester oder variabler Satzlänge gelesen und geschrieben werden. Die Daten werden im Arbeitsbereich im EBCDIC-Code satzstrukturiert dargestellt. Ist die Datei im Binär-Modus gelesen worden und wird sie mit dem Kommando WRITE ohne weitere Parameter zurückgeschrieben, wird sie automatisch wieder im Binär-Modus transferiert, allerdings immer mit variabler Satzlänge.
BFnnn
Binär-Modus feste Satzlänge. Die Datei wird wie bei M=B binär mit RECFORM=F und RECSIZE=nnn gelesen bzw. erstellt. Die Daten werden im Arbeitsbereich im EBCDIC-Code satzstrukturiert dargestellt. Wurde diese Option beim Lesen angegeben, so wird beim Schreiben ohne Parameter automatisch das gleiche Dateiformat erzeugt.
BV Binär-Modus, variable Satzlänge. Diese Angabe ist nur beim Schreiben notwendig, falls nach dem Lesen einer Datei mit fester Satzlänge eine Datei mit variabler Satzlänge erzeugt werden soll.
U Binär-Modus undefined (ohne Satzstruktur). Mit dieser Option können Dateien ohne Satzstruktur gelesen und geschrieben werden. Dieser Modus ist z.B. notwendig, wenn eine POSIX-Datei aus einem ASCII-Filesystem gelesen werden soll. Nach dem Einlesen kann der Arbeitsbereich mit dem Kommando REFORMAT UNIX und CODE ASCII satzstrukturiert dargestellt werden. Vor dem Schreiben muss der Arbeitsbereich mit dem Kommando UNFORMAT wieder in das Binärformat umgewandelt werden.
Folgende Werte sind zulässig bei FTP-Profilen:
T Text-Modus (Standardeinstellung). Mit dieser Option können Dateien mit fester oder variabler Satzlänge gelesen und geschrieben werden. Dateien, die im BS2000 mit fester Satzlänge gespeichert sind, werden beim Schreiben in die gleiche Datei automatisch im richtigen Format erzeugt. Neue Dateien können nur mit variabler Satzlänge erzeugt werden.
B Binär-Modus. Die Daten werden transparent ohne Übersetzung übertragen und im Arbeitsbereich ohne Satzstruktur dargestellt. Soweit es sich um BS2000-Dateien mit variabler Satzlänge (RECFORM=V) oder Unix/Windows-Textdateien handelt, enthalten die Daten folgende Satzende-Kennzeichen: Windows=X'0D0A', Unix = X'0A' und BS2000 = X'15'. Soweit es sich um BS2000-Dateien mit fester Satzlänge (RECFORM=F) handelt, enthalten die Daten kein Satzende-Kennzeichen. Die Codierung kann im Profil schon auf den Wert ANSI, ASCIIUNIX oder EBCDIC7 eingestellt werden.
Nach dem Einlesen kann die Satzstruktur des fernen Rechners mit dem Kommando REFORMAT (S. 1) wieder hergestellt werden.
Beispiel:
REFORMAT BS2     (BS2000, variable Satzlänge)
REFORMAT RS80    (BS2000, feste Satzlänge 80)
REFORMAT UNIX    (Unix-Datei)
REFORMAT DOS     (Windows-Datei)
Vor dem binären Schreiben eines solchen Arbeitsbereichs muss mit dem Kommando UNFORMAT wieder das Binärformat erzeugt werden.
Wird der Arbeitsbereich mit dem Kommando WRITE ohne weitere Parameter zurückgeschrieben, werden die Daten automatisch wieder im Binär-Modus transferiert und die Datei auf dem fernen Rechner mit den bestehenden Dateiattributen erstellt.
Datei-Passwort
fpass|? Passwort für den Zugriffsschutz der Datei auf dem entfernten Rechner im Format pass oder X''pass'' (Hochkommas müssen verdoppelt werden, weil das Passwort bereits Teil eines Strings in Hochkommas ist). Das Passwort kann auch im Filetransfer-Profil angegeben werden. Wird für fpass ein Fragezeichen angegeben, so wird das Passwort in einer Dialogbox unsichtbar angefordert.
Datei-Attribute für MVS
mvs-fileattr RECFM=recfm LRECL=lrecl [ BLKSIZE=blksize ]
recfm Record format: F | FB | FBA | V | VB | VBA | U
lrecl Record length: Satzlänge, max. 32767
blksize Block size: Blocklänge, max. 32767. Fehlt die Angabe der Blocklänge, wird vom MVS-System ein optimaler Wert ermittelt. In der Regel kann deshalb dieser Parameter entfallen.
Parameter für die Folgeverarbeitung
par1 par2 Beliebige Parameter, die als Parameter beim Aufruf an die Batch-Prozedur bzw. die Prozedur für die Folgeverarbeitung übergeben werden.
OPEN Die Daten der lokalen Datei werden nicht in den Arbeitsspeicher eingelesen. Im Speicher wird nur ein Verzeichnis der Datensätze mit den Plattenadressen angelegt. Benötigte Daten der Eingabedatei werden bei Bedarf direkt von der Platte gelesen. Neue bzw. geänderte Datensätze werde in eine temporäre Datei geschrieben. In diesem Modus kann eine Datei mit max. 1.024 GB eingelesen werden.
Beim Zurückschreiben der geänderten Datei mit dem Kommando WRITE werden die Daten aus der lokalen Eingabedatei und der temporären Datei zusammengefügt und in die Ausgabedatei geschrieben.
Die lokale Eingabedatei bleibt währen der Bearbeitung geöffnet und kann somit in dieser Zeit nicht überschrieben werden. Im Open-Modus gibt es keine Einschränkungen beim Editieren. Auch UNDO- und REDO-Aktionen sind wie im Normalmodus möglich.
rngcol Zeilen - und/oder Spaltenbereich der zu lesenden Zeilen. Die Zeilennummer bezieht sich auf die logischen Zeilennummern. Beispielsweise werden mit 0.0001-0.0005 die ersten 5 Zeilen der Datei eingelesen. Mit 0.0001-0.0005:1-3: werden die Spalten 1-3 der ersten 5 Zeilen eingelesen. Wenn statt des Dateinamens eine String-Variable angegeben wurde, ist die String-Variable von der Bereichsangabe rngcol durch ein Komma zu trennen. Es können mehrere Zeilen- und oder Spaltenbereiche durch Komma getrennt angegeben werden. Die Zeilen können auch durch Line-Variable und die Spalten durch Integer-Variable angegeben werden. Die Bereichsangabe wird nicht ausgewertet, wenn die Datei binär eingelesen wird.
BINARY Die Datei wird unabhängig von evtl. vorhandener Satzstruktur im Format einer Binärdatei (siehe oben) in den Arbeitsbereich eingelesen.
rngbyte rng [,rng.....]
rng { int | intvar | $-int } - { int | intvar | $[-int] }
Bereich der einzulesenden Bytes im Binärmodus. Die Bereichsangabe kann direkt als Integer, als Integer-Variable oder als "Dateiende - Anzahl" angegeben werden. Die Bereiche können sich auch überlappen. Die Daten werden insoweit mehrfach eingelesen.
int Erstes bzw. letztes einzulesendes Byte als Ganzzahl.
intvar Integer-Variable mit der Nummer des Bytes
$-int Distanz zum Dateiende.
Beispiele:
@set#i1=1
@set#i2=10000
1-10000,1-100
Bytes 1-10000 und 1-100
#i1-#i2          Bytes 1-10000
$-10000-$        Die letzten 10000 Bytes der Datei
#i2-20000        Bytes 10000 bis 20000
$-#i2-$          Die letzten 10000 Bytes der Datei
Dialogbox für die Passwort-Eingabe
Das Datei- bzw. Logon-Passwort ist in der Form cccc oder x'xxxxxxxx' anzugeben. Die Hochkommas müssen in der Dialogbox nicht verdoppelt werden.
Beispiel READ mit internem Filetransfer:
read'std r=src1.ass'
Die Datei src1.ass wird vom fernen Rechner gelesen. Es werden die FT-Angaben aus dem FT-Profil std benutzt.
read'std r=datei1'o
Die Datei datei1 wird vom fernen Rechner gelesen und im Open-Modus bearbeitet. Es werden die FT-Angaben aus dem FT-Profil std benutzt.
Beispiel READ mit Batchdatei (aktueller Arbeitsbereich = 0):
read'host1 r=test1 l=test1.src user1 acc1'
Starten der Batch-Datei host1.bat über eine übergeordnete temporäre Batch-file:
set locfile=test1.src
set remfile=test1
set call=R
call host1.bat user1 acc1
Inhalt der Datei host1.bat:
if R==%call% goto read
if W==%call% goto write
goto ende
:read
ncopy host1@%remfile% %locfile% %1,%2
goto ende
:write
ncopy %locfile% host1@%remfile% %1,%2
if not errorlevel 0 goto ende
del %locfile%
:ende
Folgendes Kommando wird in der Batch-Datei zum Lesen der Daten ausgeführt:
   ncopy host1@source.test1 test1.src user1,acc1
Hinweis:
Die Angaben ft | batch R=remote-file können entfallen, falls sie mit dem Kommando CHDIR als Standard definiert sind.
Mit Hilfe der Batch-Datei kann ein beliebiger Arbeitsgang zur Bereitstellung der zu editierenden Datei ausgeführt werden. Wie oben dargestellt kann eine Datei mit einem Filetransfer-Programm von einem BS2000-Host abgeholt werden. Es ist aber auch möglich, eine in einem ARJ-/ZIP-Archiv komprimierte MS-DOS Datei zu entpacken und im EDT zu bearbeiten.