Exportieren kann man entweder direkt mit dem Befehl write , der unmittelbar in die eingestellte Exportdatei schreibt, oder aber mit Hilfe von Export-Parametern über die export -Befehle. Das zweite ist eine noch mächtigere Methode, dafür aber muß man sich mit der Exportsprache auskennen.
write cstring (Was ist ein cstring ? ) avanti
So kann man am schnellsten Satzinhalte und beliebigen Text ausgeben. Der cstring kommt zusätzlich in die iV !
Beispiel:
write "Titel: " #20 n "Verfasser: " #40 n "Ort: " #74 " (" #76 ")"
produziert eine Ausgabe in dieser Form:
Titel: Hamlet
Verfasser: Shakespeare, William
Ort: London (1982)
Das 'n' ist der Befehl für eine "neue Zeile".
Schlichte Exporte kann man hiermit ohne Exportsprache machen.
a99: Soll dabei von ASCII nach ANSI umcodiert werden, muß man das über die iV machen, also
var cstring\ansi\write statt nur write cstring
avanti: Umcodierung mittels o-Befehlen (o.apt) erfolgt automatisch, falls nicht set c0 gesetzt ist.
Eine bessere Möglichkeit: man kann einen speziellen Abschnitt in den Exportparametern für den write-Befehl nutzen. Dazu ist der Befehl export wX nötig.
Sonderformen:
write bzw. in avanti: write iV
Inhalt der internen Variablen (iV) unverändert in die momentan aktive Ausgabedatei schreiben.
Mit if no ... kann man anschließend checken, ob das Schreiben gelungen ist.
Ist der Inhalt ein cstring, muß man ihn vorher noch mit var in richtigen Text verwandeln.
Die "momentan aktive Ausgabedatei" ist diejenige, die zuletzt mit open x dateiname geöffnet wurde oder gleichwertig mit exp f dateiname .
write NUR avanti
In avanti wird der iV-Inhalt als cstring interpretiert, d.h. nicht unverändert herausgeschrieben. Wenn es ein Textinhalt ist, muß er also in "..." oder '...' stehen.
Mit switch c 1 kann ferner der Textinhalt beim Herausschreiben in ANSI (ISO8859-1) konvertiert werden.
Die "momentan aktive Ausgabedatei" ist am Anfang stdout, dann die jeweils zuletzt mit exp f dateiname geöffnete Datei.
Eine flexible Option ist ab V26 die Umcodierung mittels Parameter: siehe export wX
write iV avanti
Der momentane iV-Inhalt wird unverändert (insbes. ohne Umcodierung) ausgegeben.
write ^
Dasselbe, aber Strg-Kombinationen werden durch die Steuercodes ersetzt (^A durch 1 etc.), genau umgekehrt wie beim Befehl fetch
Besonders nach einem Einlesen von Daten mit fetch ist das sinnvoll. Die Daten können zwischenzeitlich in ein Datenfeld, eine #u-Variable oder eine $-Variable kopiert und mit var #... bzw. var $... wieder in die iV zurückgeholt worden sein. Wegen der Umwandlung in ^A etc. geht kein Steuerzeichen dabei verloren.
Sinnvoll kann es auch sein, weil man auf diese Weise auch Codes unterhalb 32 direkt in einen Text einstreuen kann, die man nicht über die Tastatur eingeben könnte. z.B. ^I für das TAB-Zeichen, ^M^J für 13 10 (Zeilenvorschub).
Hinweis: Mit if no ... kann man jeweils checken, ob das Schreiben nicht geklappt hat.
Write cstring (großes W) NUR avanti
Gibt auf dem Kanal stderr aus, statt in die Standardausgabe bzw. Ausgabedatei.
Sonderfall:
write Ffilename avanti
Inhalt der Datei filename in die Ausgabe übernehmen.
filename kann auch eine Internet-Adresse sein, wie beim Befehl get I url .
Vorsicht: Ist die Datei länger als 2 Mio. Zeichen, wird sie abgeschnitten.
Achtung: Im Dateinamen / statt \ verwenden, oder aber \\
Hinweis:
Wenn man V14-Methodik hat (Stammsatz-Ersetzungen) und/oder V-Sequenzen (Unicode-Verfahren 1), dann kommen beim write-Befehl nicht die Klartexte bzw. die eigentlichen Zeichen heraus. Will man das erreichen, muß man vor den write-Befehlen mit
die Ersetzungen vornehmen lassen. Für das erste hat avanti statt dessen den Befehl set ai
Besonderheiten bei avanti
Alle diese Sonder-Befehlswörter lassen sich bis auf den ersten Buchstaben verkürzen (nur der ist wirksam) und haben dann dieselbe Bedeutung wie die Sondervariablen in a99.
write internal Interne Satznummer des aktuellen Satzes
write lastnum Anzahl Ergebnisse (Größe der aktuellen Erg.Menge)
write newline Neue Zeile (UNIX: Code 10, DOS: 13 10)
write primkey Primärschlüssel des aktuellen Satzes ausgeben
write relative laufende Nr. (relative Position) des aktuellen Satzes innerhalb der Erg.Menge ausgeben
Nur wenn eine .STL existiert:
write short Kurzzeile des Datensatzes (.STL-Eintrag) schreiben.