5. Modul MAP - ICS Objekte temporär speichern

5.1. Allgemeines

Mit dem Modul MAP können ICS Objekte im Hauptspeicher zwischengespeichert und aus dem Zwischenspeicher während der Verarbeitung wieder ausgelesen werden. Der Modul unterscheidet sich von LIST vor allem durch die Möglichkeit jedes Objekt unter einem eindeutigen Schlüssel speichern und später wieder abfragen zu können.

MAP wird mit:

|INCL \script\map.mod

in einer ICS RUN1-Konfiguration verfügbar gemacht.

5.2. Abhängigkeiten von anderen Modulen

Keine Abhängigkeiten vorhanden.

5.3. Parametermap

Der Modul MAP benötigt für das Speichern der Objekte benannte Map's. Diese müssen vom Benutzer in der .cfg Datei vorgängig angelegt werden.

5.4. Objektmodell

Komponenten für jedes IN-Objekt
Komponentereq/optBeschreibung
IN.KEY(s)rSchlüssel welcher beim Speichern des Werts in der Map übergeben wurde.
IN.VALUE(o)rWert welcher unter Schlüssel IN.KEY in der Map abgelegt ist.

5.5. Exportierte Prozeduren und Methoden

ProzedurMAP_OPEN ! [s map][]
BeschreibungÖffnet die Map mit Namen <map>.
Beispiel
'lfp' MAP_OPEN
ProzedurMAP_READ_OBJECT ! [][b state]
Beschreibung

Liest das nächste Objekt aus der aktuellen Map.

Beispiel
MAP_READ_OBJECT [TRUE]
ProzedurMAP_CLOSE ! [][]
BeschreibungSchliesst den Modul und gibt die durch den Modul belegten Resourcen wieder frei. Die Prozedur wird von RUN1 automatisch aufgerufen.
Beispiel
MAP_CLOSE
ProzedurMAP_WRITE_OBJECT3 ! s map,s key,o value
BeschreibungSchreibt das Objekt <value> in die Map <map> unter dem Schlüssel <key>.
Beispiel
... => MAP_WRITE_OBJECT3,lfp,IN.Nummer,IN

5.6. Skriptbeispiel

! Diese ICS Konfiguration speichert alle LFP Fixpunkte aus 
! einer INTERLIS Datei unter ihrer Nummer in der Map LFP. 
! Am Schluss des Skripts werden die Nummern der in der Map 
! enthaltenen Punkte in die .log Datei ausgegeben. Durch
! das Speichern in der Map LFP werden doppelte Nummern 
! automatisch eliminiert.

|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 LFP
END_MAP

MAP INPUT_SOURCES
   I1 => ILIN,OPT.input
   I2 => MAP,LFP
END_MAP

MAP INOUT
   I1 => IN.TOPIC,IN.TABLE
   I1,Fixpunkte,LFP => MAP_WRITE_OBJECT3,LFP,IN.Nummer,IN
   I1,* => OFF
   I2 => DISPLAY_OBJECT1,IN.KEY
END_MAP

|INCL \script\util.lib
|INCL \script\map.mod
|INCL \script\ilin.mod
|INCL \script\run1.prg