Matrix in Datei exportieren

Beispiele

DIMOPTION ON
DIMOPTIONBASE 1
DEF POOL 1000000
INIT VARSPACE
DIM Bch(3)
WidgetName$=" DLG016_Dliste "
MAT Bch = WIDMXREAD WidgetName$ ; "1#2#6"
MAT EXPORT bch TO "bch.txt" OPTIONS "1<i>2<tK>3<K>"
Das Beispiel zeigt leicht verständlich die Möglichkeiten auf. In der INVEP-Kontenanzeige können mehrere Konten markiert werden, und danach lassen sich sämtliche Buchungen der markierten Konten anzeigen. Wenn hiernach das obige OBAS-Modul gestartet wird, so wird diese Anzeige als Datei mit dem Namen “bch.txt“ exportiert und auf der Festplette gespeichert. Mit WIDMXREAD werden insgesamt drei Spalten ausgelesen. Die Zielmatrix enthält in der ersten Spalte die Kontonummer, in der zweiten Spalte das Datum in Form des julianischen Kalenders und in der dritten Spalte den Buchungsbetrag. Mit der MAT EXPORT-Anweisung wird nun spezifiziert, wie diese Daten auszugeben sind. Für die ersten Spalte wird angegeben, dass der Wert als Ganzzahl ausgegeben werden soll (die Kontonummer). Die Formatanweisung für die zweite Spalte lautet, dass der darin jeweils enthaltene Wert in ein Datum konvertiert werden soll (Formatzeichen “t“) und dass das Datum danach im standardisierten Kompaktformat ausgegeben werden soll. Für die dritte Spalte wird einfach ein Kompaktformat spezifiziert. Die Zeilen in der Ergebnisdatei haben beispielsweise folgendes Erscheinungbild:
1000;02.08.2002;15000,000000
1000;02.08.2002;-4000,000000
1000;05.08.2002;10,200000
Wenn in der MAT EXPORT-Anweisung die Optionen weggelassen werden (MAT EXPORT bch TO "bch.txt" ohne Optionen), so würden in diesem Beispiel folgende Datenzeilen ausgegeben werden:
1000,000000;2452489,000000;15000,000000
1000,000000;2452489,000000;-4000,000000
1000,000000;2452492,000000;10,200000
Die Kontonummer wird mit Dezimalstellen ausgegeben (obwohl dies natürlich Unsinn ist). Das Datum wird als julianischer Tag ausgeben, der Wert bleibt.
Insbesondere, wenn Matrixspalten ein Datum enthalten, so muss dieses Datum beim Export wie oben angegeben formatiert werden. Es ist natürlich möglich, das Datum selbst noch mannigfaltig gemäß der diversen Datums-Formatanweisungen anders auszugeben. Es sei hier auf das Kapitel Datenformatierung mit der USING-Anweisung verwiesen.
Im vorherigen Beispiel wurde ein Ergebnis in Form einer CSV-Datei erzeugt. Solche CSV-Dateien können sehr bequem z.B. in Excel® eingelesen werden. Diverse Analysesysteme erwarten jedoch ein anderes Datenformat. Als Beispiel ist hier Wolfram-Mathematica® zu erwähnen. Dieses Programmsystem liest Daten am besten in Form von Listen ein. Das obige Programm kann mit einer minimalen Modifikation auch entsprechende Ausgaben erzeugen. Neben dem Listenmodus wird als Elementseparator von Mathematica ein Komma erwartet und das Dezimaltrennzeichen ist ein Punkt:
DIMOPTION ON
DIMOPTIONBASE 1
DEF POOL 1000000
INIT VARSPACE
DIM Bch(3)
WidgetName$="DLG016_Dliste"
MAT Bch=WIDMXREAD WidgetName$ ; "1#2#6"
MAT EXPORT Bch TO "~bch . txt" OPTIONS "1<i>2<tK>3>K<,LISTMODE,DECSEP=.,SEPCHAR=,"
In diesem Beispiel wurde dem Dateinamen auch eine Tilde vorangestellt. Das bedeutet, dass die Datei im Heimatverzeichnis des Anwenders erzeugt wird. Wo sich das Heimatverzeichnis des Anwenders befindet, wird während der Laufzeit des Programmes automatisch ermittelt.

Referenz

MAT EXPORT QuellMatrix TO Dateiname$ [OPTIONS Optionen$]
Die Anweisung schreibt die gesamte Matrix in die mit dem Dateinamen$ angegebene Datei. Wenn keine Optionen angeben werden, so wird die Matrix zeilenweise ausgegeben, wobei die einzelnen Elemente mit einem Semikolon voneinander getrennt werden. Mit dem Optionen$ kann die Art der Ausgabe jedoch sehr individuell beeinflußt werden. Der Optionen$ kann sowohl allgemeine Steueranweisungen für die Ausgabe enthalten aus auch Formatanweisungen für einzelne auszugebende Zellen.

Ist im Optionen$ das Word LISTMODE enthalten, so werden die einzelnen Zellen nicht Reihen-/Spaltenweise ausgebeben, sondern in mit geschweiften Klammern zusammengefassten Gruppen.

Das Export-Kommando schalten automatisch in den Listmode, sowie eine Matrix mit mehr als zwei Dimensionen ausgegeben wird. Das Word SEPCHAR=c definiert ein anderes Trennzeichen zwischen den einzelnen auszugebenden Elementen. Für den Büchstaben c ist einfach das gewünschte Trennzeichen einzugeben. Mit dem Schlüsselwort DECSEP=c kann ein von den tandardSpracheinstellungen abweichendes Dezimaltrennzeichen angebeben werden. Besonderer Bedeutung kommt der Zellenformatierung zu. Zellen, für die im Optionen$ keine Formatanweisung angegeben ist, werden im Standard-Format ausgegeben. Zellen, die in einem speziellen Format ausgegeben werden sollen, werden mit einer Formatanweisung der Form “n<Format>“ spezifiziert. Dabei gibt n die Position der Zelle an (anfangend bei 1) und zwischen den größer-/kleiner-Zeichen steht eine Formatanweisung, die identisch mit der USING-Formatanweisung ist. Der Unterschied zwischen einer Standard- USING-Anweisung liegt also darin, dass Formatspezifikationen immer nur für einzelne Zellen gelten.

Siehe auch



Schatten