Mit dem Modul OSTREAM (= Objektstrom) können ICS Objekte in temporären Dateien zwischengespeichert und aus dem Zwischenspeicher während der Verarbeitung wieder sequentiell oder über einen Schlüssel ausgelesen werden. Der Modul hat eine sehr ähnliche Funktionalität wie der Modul LIST. Der Unterschied zu LIST besteht darin, das der Zwischenspeicher im Fall von OSTREAM Dateien sind und im Fall von LIST der Hauptspeicher. OSTREAM eignet sich daher für grosse Datenmengen ist dafür aber langsamer als LIST.
OSTREAM wird mit:
|INCL \script\ostream.mod
in einer ICS RUN1-Konfiguration verfügbar gemacht.
Der Modul OSTREAM speichert bzw. liefert die ICS Objekte so wie die Objekte ihm ursprünglich übergeben wurden. Der Modul OSTREAM hat daher kein eigenes Objektmodell.
Für eine sequentielle Verarbeitung von Objekten.
Prozedur | OSTREAM_OPEN ! [s file][] |
Beschreibung | Öffnet einen Objekstrom mit Namen
<file> . <file>
wird immer relativ zu OPT.temp_dir
angelegt. |
Beispiel | 'test.dat' OSTREAM_OPEN |
Prozedur | OSTREAM_READ_OBJECT ! [][b status] |
Beschreibung | Liest das nächste Objekt aus dem aktuellen Objektstrom. |
Beispiel | OSTREAM_READ_OBJECT [TRUE] |
Prozedur | OSTREAM_CLOSE ! [][] |
Beschreibung | Schliesst den Modul und gibt die durch den Modul belegten Resourcen wieder frei. Alle temorären Dateien werden wieder gelöscht. Die Prozedur wird von RUN1 automatisch aufgerufen. |
Beispiel | OSTREAM_CLOSE |
Prozedur | OSTREAM_WRITE_OBJECT1 ! s file |
Beschreibung | Schreibt das aktuelle IN-Objekt in
die temporäre Datei <file> . |
Beispiel | ... => OSTREAM_WRITE_OBJECT1,test.dat |
Für eine Verarbeitung von Objekten über Schlüssel.
Prozedur | OSTREAM_WRITE_OBJECT_KEY3 ! s file, s key, m object |
Beschreibung | Schreibt das Objekt
<m> mit dem Schlüssel
<key> in die temporäre Datei
<file> . |
Beispiel | ... => OSTREAM_WRITE_OBJECT_KEY3,test.dat,IN.OBJID,IN |
Prozedur | OSTREAM_WRITE_OBJECT_KEY [s file, s key, m map][] |
Beschreibung | Schreibt das Objekt
<m> mit dem Schlüssel
<key> in die temporäre Datei
<file> . |
Beispiel | 'test.dat' IN.OBJID &IN OSTREAM_WRITE_OBJECT_KEY |
Prozedur | OSTREAM_READ_OBJECT_KEY [s file, s key][m map, b status] |
Beschreibung | Liest das Objekt <m>
mit dem Schlüssel <key> aus der
temporäre Datei <file> . Das Objekt
<m> wird nur auf dem Stack geliefert,
wenn der status = TRUE ist. |
Beispiel | 'test.dat' '10001' OSTREAM_READ_OBJECT_KEY [m TRUE] |
! Diese ICS Konfiguration speichert alle LFP Fixpunkte aus ! einer INTERLIS Datei in einer temporaeren Datei. Am Schluss des ! Skripts werden die Nummern der in der temporaeren Datei enthaltenen ! Punkte in die .log Datei ausgegeben. |LICENSE \license\iltools.lic MAP USER_INPUT1 DIALOG => FILE ! FILE | STRING | ODBC MESSAGE => 'Enter .itf Input File' FILE_FILTER => itf FILE_EXISTS => TRUE OPT => input END_MAP MAP ILIN_PARAM INTERLIS_DEF => \models\Grunddatensatz.ili STATISTICS => ON DEBUG => OFF END_MAP MAP INPUT_SOURCES I1 => ILIN,OPT.input I2 => OSTREAM,lfp.dat END_MAP MAP INOUT I1 => IN.TOPIC,IN.TABLE I1,Fixpunkte,LFP => OSTREAM_WRITE_OBJECT1,lfp.dat I1,* => OFF I2 => DISPLAY_OBJECT1,IN.Nummer END_MAP |INCL \script\util.lib |INCL \script\ostream.mod |INCL \script\ilin.mod |INCL \script\run1.prg