Format1: Schreiben lokal
WRITE ['file [:ads]' | zip( [path/] elem) | str-var] [,] [rngcol] [ OVERWRITE | UPDATE ] [D | X] [KEY] [code]
WRITE ALL
WRITE STDOUT | STDERR
Daten aus dem aktuellen Arbeitsbereich in die Datei file schreiben. Bei fehlendem Dateinamen wird der zuletzt benutzte Dateiname des aktuellen Arbeitsbereichs verwendet, sofern ein Dateiname existiert. Falls die Datei im UNIX-Format (Satz-Trennzeichen X'0A') eingelesen wurde, wird bei fehlendem Dateinamen der Arbeitsbereich auch wieder im UNIX-Format zurückgeschrieben.
file Dateiname. Der Name muss in Hochkommas eingeschlossen werden. Enthält der Dateinamen keinen Pfadnamen, wird als Pfad das Arbeitsverzeichnis benutzt (siehe auch Kommando CHDIR).
ads Die Daten des Arbeitsbereichs werden als "Alternate Data Streams (ADS)" geschrieben. Diese Erweiterung wird nur von Windows NT/2000 mit NTFS-Dateisystem unterstützt. Die ADS sind für den Explorer "unsichtbar". Eine Liste der ADS können Sie mit dem Kommando FSTAT erzeugen.
Beispiel: datei1:stream1.
zip( [path/] elem) Element eines ZIP-Archivs. Der Name muss in Hochkommas eingeschlossen werden. Enthält der Dateinamen des ZIP-Archivs keinen Pfadnamen, wird als Pfad das Arbeitsverzeichnis benutzt (siehe auch Kommando CHDIR). Vor dem Elementnamen kann wahlweise ein Verzeichnisname innerhalb des ZIP-Archivs angegeben werden. Ein bestehendes Element kann auch überschrieben werden.
Das Element wird in eine temporäre Datei in das TEMP-Verzeichnis geschrieben, in das ZIP-Archiv aufgenommen und sofort wieder gelöscht.
str-var String-Variable, die den Dateinamen enthält.
ALL Alle Arbeitsbereiche, bei denen Änderungen vorgenommen wurden, schreiben. Es werden nur die geänderten Arbeitsbereiche geschrieben. Mit dem Button können ebenfalls alle Arbeitsbereiche gespeichert werden.
STDOUT | STDERR Alle Daten des Arbeitsbereichs werden nach STDOUT bzw. STDERR geschrieben. Die Systemdatei wird immer ergänzt, d.h. es erfolgt immer ein Erweitern der Systemdatei wie bei der Option UPDATE. Beim Laden des EDTW muss die entsprechende Systemdatei in eine Datei umgelenkt werden.
Beispiele für die Umleitung:
edtw.exe > dat.stdout 2> dat.stderr
edtw.exe > dat.stdout
| more
Auswahl von Zeilen und Spalten
rngcol Zeilen - und/oder Spaltenbereich der zu schreibenden Zeilen. Wenn statt des Dateinamens eine String-Variable angegeben wurde, ist die String-Variable von der Bereichsangabe rngcol durch ein Komma zu trennen.
Überschreiben und Erweitern von Dateien
OVERWRITE Diese Option bewirkt, dass eine bereits bestehende Datei ohne Rückfrage überschrieben wird.
UPDATE Diese Option bewirkt, dass der Inhalt des Arbeitsbereichs an eine bereits bestehende Datei angehängt wird.
Satzende-Kennzeichen und Isam-Key
D Eine Datei, die im UNIX-Format eingelesen wurde (Satz-Trennzeichen X'0A'), wird im MS-DOS-Format (Satz-Trennzeichen X'0D0A') zurückgeschrieben.
X Eine Datei, die im MS-DOS-Format eingelesen wurde (Satz-Trennzeichen X'0D0A'), wird im UNIX-Format (Satz-Trennzeichen X'0A') zurückgeschrieben.
KEY Beim Schreiben wird jeder Zeile ein 8 Zeichen langer Schlüssel vorangestellt, der sich aus der jeweiligen Zeilennummer ergibt. Damit erreicht man, dass diese Datei später wieder mit genau denselben Zeilennummern eingelesen werden kann (siehe @READ mit Operand KEY).
Codierung (UNICODE-Dateien)
code CHAR | UTF | UCB | UCL [ HEA | NOHEA ]
UNICODE-Arbeitsbereiche werden automatisch mit der Codierung geschrieben, die in dem eingelesenen Headers bzw. bei der Option code des Kommandos READ angegeben wurde. Ein-Byte-Arbeitsbereiche (ANSI, EBCDIC usw.) werden mit der Option CHAR geschrieben. Die Angabe der Codierung ist dann nicht notwendig. Wird ein neu erstellter UNICODE-Arbeitsbereich geschrieben, wird über eine Dialogbox die gewünschte Codierung angefordert.
Die Angabe eines Codes bewirkt keine Code-Konvertierung, z.B. von EBCDIC zu UNICODE. Die Zeichen werden unverändert geschrieben, es geht nur darum, ob aus einem Zeichen 1 Byte (CHAR), variabel viele Bytes (UTF) oder 2 Bytes (UCB oder UCL) erstellt werden. Die Codes ANSI und UNICODE sind bis auf das EURO-Zeichen gleich. Soweit kein EURO-Zeichen vorkommt, kann ein ANSI-Arbeitsbereich ohne Konvertierung als UNICODE-Datei geschrieben werden.
CHAR Datei im 1-Byte-Format (z.B. ANSI, ASCII, EBCDIC). Diese Format wird automatisch benutzt, falls es sich nicht um einen UNICODE-Arbeitsbereich handelt. Ein UNICODE-Arbeitsbereich kann nur mit CHAR geschrieben werden, falls keine Zeichen > 255 (Achtung: € = U'20AC') enthalten sind.
UTF Datei im UTF-8-Format. UTF-8 (Abk. für 8-Bit Unicode Transformation Format) ist die am weitesten verbreitete Codierung für Unicode-Zeichen. Dabei wird jedem Unicode-Zeichen eine speziell codierte Bytekette von variabler Länge zugeordnet. UTF-8 unterstützt bis zu vier Byte, auf die sich wie bei allen UTF-Formaten alle 1.114.112 Unicode-Zeichen abbilden lassen. Das UTF-8-Header enthält X'EFBBBF'
UCB UTF-16BE Unicode Big-Endian (höherwertiges Byte zuerst). UTF-16 (Abk. für 16-bit Unicode Transformation Format) ist eine Codierung, bei der jedes Unicode-Zeichen mind. 16 Bit belegt. Unicode-Zeichen, deren Code sich nicht mit 16 Bit darstellen läßt, belegen zwei 16-Bit-Wörter (code units). Das UTF-16-Header enthält X'FEFF'.
Das höherwertige Byte steht in den ersten 8 Bits, z.B. Die Zahl "0" (X'30') erhält den Wert X'0030'.
UCL UTF-16LE Unicode Little-Endian (niederwertiges Byte zuerst). Das UTF-16-Header enthält X'FFFE'.
Das niederwertige Byte steht in den ersten 8 Bits, z.B. Die Zahl "0" (X'30') erhält den Wert X'3000'.
HEA Beim Schreiben Header voranstellen (Standard). Folgende Header werden erstellt:
UTF X'EFBBBF''
UCB X'EFFF''
UTL X'FFFE''
NOHEA Datei ohne Header schreiben.
Hinweis:
Ist die Option für die automatische Erstellung einer Sicherungskopie akitviert (Menüzeile: Optionen / Sicherung), so wird vor dem Zurückschreiben der Datei eine Sicherungskopie erstellt.
Beispiele:
write'datei1'
write'datei1'k
write'datei1'ucb
par varsubst=y
write 'temp!pid'
write #s1,1-500,800-900:10-20:
write 'datei1'1-500,800-900:10-20:
.
write test.zip(verz1/test1.src)