Daten-Output

<< Click to Display Table of Contents >>

Navigation:  Anhang > Historisches > Handhabung von ASCII-Daten >

Daten-Output

CopyFile

Ausgabefile des gelesenen und gegebenenfalls geänderten Datensatzes als ASCII-File.

Syntax:

COPYFILE = <path>;

Innerhalb des Pfads bzw. Dateinamens werden folgende Expansionszeichen erkannt:

%T

Uhrzeit, HHMMSS

%D

vollständiges Datum, YYYYMMDD

%M

aktueller Monat MM

%Q

aktuelles Quartal 1..4

%Y

aktuelles Jahr YY

%U

username, login-name des Benutzer

Mit Ausnahme der Recodes, Computes etc. ist der Inhalt von COPYFILE mit dem Inhalt von DATAFILE identisch. (Aus historischen Gründen wird synonym noch das Synonym OUTFILE akzeptiert.)

NoInput

Will man eine noch nicht existierende Variable neu generieren und im COPYFILE ausgeben, dann muss man eine Variablen-Position angeben, die u.U. im Eingabedatensatz noch nicht enthalten ist. Hierfür gibt es das Keyword NOINPUT. Ist z.B. der Eingabedatensatz 70 Spalten lang, und soll eine neue Variable NEWVAR in Spalte 80-82 abgelegt werden, so muss man vor dem COMPUTE-Statement schreiben:

VARNAME = NewVar 80 3 NOINPUT;


ASCIIOutFile

Ausgabefile von Daten im ASCII-Format.

Syntax:

ASCIIOUTFILE [ DELIMITED [ ASCIIOUT ] ] = <filename>;

Im ASCIIOUTFILE sind nur die Variablen enthalten, für die eine ASCIIOUT-Vereinbarung existiert. Im Normalfall wird der ASCIIOUTFILE spaltenfixiert generiert. Für Übergabe der Daten an externe Programme wie z.B. Excel kann auch eine mit Delimiter getrennte Ausgabe im freien Format geschrieben werden. Dies wird mit dem Schlüsselwort DELIMITED angefordert. In diesem Fall wird normalerweise eine Kopie der eingelesenen Daten generiert; d.h. man muss keine ASCIIOUT-Statements schreiben. Sollen nur bestimmte Variablen ins DELIMITED ASCIIOUTFILE, kann man anschließend noch ASCIIOUT schreiben.

Normalerweise werden bei einer Ausgabe in ein DELIMITED File die Variablen in der GESS-internen Reihenfolge übertragen.

Auf speziellen Wunsch hin ist dies erweitert worden. Schreibt man

ASCIIOUTFILE DELIMITED VARIABLES = <filename>;

anstelle von

ASCIIOUTFILE DELIMITED ASCIIOUT = <filename>;

dann werden die Variablen in der Ausgabedatei nicht mehr in der internen Reihenfolge abgelegt, sondern in der Reihenfolge, wie sie im ASCIIOUT-Statement benannt werden.


ASCIIOut

Jede Variable, die in einem ASCIIOUTFILE auftauchen soll, muss in einem ASCIIOUT-Statement erwähnt werden.

Syntax:

ASCIIOUT <Varlist> = startcolumn [ width ];

oder

ASCIIOUT ALL;

Beispiel:

ASCIIOUT Item1 TO Item20 = 21;

Die Variablen Item1 bis Item20 werden ab Spalte 21 im ASCIIOUTFILE abgelegt. Da keine explizite Feldbreite angegeben wurde, erhält jede Variable eine Spalte, d.h. es werden Spalte 21 bis 40 belegt. In der <varlist> dürfen einfache (atomare) Variablen stehen, aber ebenso Gruppenvariablen (VARGROUP/DICHOQ) oder Familienvariablen (MULTIQ/VARFAMILY). Für die Ausgabe werden diese Mehrfachnennungsvariablen wie eine explizite Variablenliste ihrer atomaren Basisvariablen behandelt. OPEN-Variablen müssen vorher in eine der Standardvariablen umgewandelt werden.

Analog zur Definition von Variablen für den Input kann man anstelle eines Zahlenwertes für eine Startspalte auch ein Sternchen verwenden; das bedeutet dann soviel wie »die nächste freie Spalte«.

Fehlt die Angabe zu WIDTH, wird diese aus dem AsciiIn-Descriptor entnommen, wenn die Variable aus einem ASCII-File gelesen wurde. Ist die Variable z.B. durch ein COMPUTE gebildet, fehlt diese Information. Hat die Variable Labels, so wird das höchste Label herangezogen, um die Spaltenbreite zu bestimmen. Fehlt auch diese Information, wird Width auf den Default 5 gesetzt.

Bei ASCIIOUT ALL; wird für jede Variable, die aus dem DATAFILE gelesen wird, eine spaltengleiche Kopie ins ASCIIOUTFILE geschrieben. Nun ist es erlaubt, Spalten aus dem DATAFILE mehrfach zu lesen. Das kann bei ASCIIOUT ALL allerdings ins Chaos führen. Hierfür liegt eine Prüfung auf Doppelbelegung vor.


IgnoreASCOUTDupl

Schalter, um die automatisch erfolgende Prüfung zur Vermeidung von doppelter Spaltenbelegung bei ASCIIOUT ALL ausschalten.

Syntax:

IGNOREASCOUTDUPL = [ YES | NO ];


ASCIIOutCards, ASCIIOutCard

Syntax: entspricht Card(s).

Anzahl der Karten und Voreinstellung der jetzt aktuellen Karte für die Ausgabe von Variablen im ASCII-Format in die Datei ASCIIOUTFILE.


ASCIIOutDecimalChar

Syntax:

ASCIIOUTDECIMALCHAR = [ . | ‚ ];

Definiert einen CHAR-Wert, der als Dezimaltrenner bei ASCIIOUT verwendet werden soll.


LeadingZeros

Syntax:

LEADINGZEROS = [ YES | NO ];

Voreinstellung: NO

Steuert die Ausgabe von numerischen Werten (im CopyFile bzw. im ASCIIOUT). Bei LeadingZeros=YES werden numerische Werte linksbündig mit Nullen aufgefüllt. Gilt für einen gesamten Job.


AlignAlpha

Syntax:

ALIGNALPHA = [ LEFT | RIGHT ];

Steuert die Positionierung von Strings im ASCIIOUTFILE, wenn eine Variable vom Typ ALPHA ausgegeben wird. Links- oder rechtsbündig.


NoASCIIExtension

Syntax:

NOASCIIEXTENSION = [ YES | NO ];

Normalerweise werden ASCII-Datensätze, die von GESStabs erzeugt werden, rechtsbündig mit einem * abgeschlossen. Soll dies nicht geschehen, kann man das mit diesem Schalter erreichen.