Mit dem Modul TXTOUT können Objekte in eine Textdatei geschrieben werden.
Der Modul TXTOUT wird mit:
|INCL \script\txtout.mod
in einer ICS RUN1-Konfiguration verfügbar gemacht.
Folgende Parameter können in der Map TXTOUT_PARAM
für den Modul gesetzt werden:
Parameter | req/opt | Beschreibung |
TRACE | o | ON oder OFF , Default
= OFF . Tracemodus ein oder aus. |
STATISTICS | o | ON oder OFF , Default
= OFF . Objektstatistik am Ender der .log Datei
anzeigen. |
HEADER | o | ON oder OFF , Default
= ON . Soll Zeilenheader geschrieben
werden. |
DELIMITER | o | string , Default = 9 .
ASCII Code oder Character für Trennzeichen. 9 = Tabulator. |
TEXTENCLOSURE | o | string , ASCII Code oder Character für
Einfassung |
OUTPUT_APPEND | o | ON oder OFF , Default
= OFF . Soll der Output an ein bestehendes
Outputfile angehängt werden. |
Der Modul verlangt für jedes OUT-Objekt folgende Systemkomponenten:
Komponente | req/opt | Beschreibung |
OUT.FILE(s) | r | File für Objekt. |
OUT.<Attribute>(*) | o | Attribut mit Wert. |
Dieses Objektmodell gilt für die Anwendung mit der Prozedur
TXTOUT_WRITE_OBJECT und
TXTOUT_WRITE_OBJECT1
.
Mit Record Definitionen können nicht Objekte vereinfacht geschrieben
werden. Die Record Definitionen werden von der Prozedur
TXTOUT_WRITE_RECORD1
verarbeitet. Eine Record
Definition sieht wie folgt aus.
MAP RECORD_<name>
FILE => <FILE-Name>
:
<Attribute-Name> => <Attribute-Value>
:
END_MAP
Die einzelnen Bestandteile einer Record-Definition sind:
RECORD_<name>
Eine Record Definition ist eine Map. Der Map-Name muss mit dem Prefix RECORD_ beginnen und einen eindeutigen Namen <name> für die Record Definition beinhalten.
FILE
Diese Komponente ist required und definiert das Output-File.
<Attribute-Name>
Definiert als Komponente einen Attribut-Namen des Files. Es können beliebig viele Attribute als Komponenten definiert werden.
<Attribut-Value>
Definiert den Wert für das Attribut. Als Wert können absolute Werte oder ICS-Variablen, die einen Wert beinhalten - z.B. IN.OBJID - verwendet werden.
Beispiel einer Record Definition.
MAP RECORD_LFP1 FILE => LFP1.txt Art => IN.TABLE Nummer => IN.Nummer X => IN.X Y => IN.Y Z => IN.Z END_MAP
Prozedur | TXTOUT_OPEN ! [s file][] |
Beschreibung | Erzeugt die Textdatei
<file> . Die Prozedur wird von RUN1
automatisch aufgerufen. |
Beispiel |
|
Prozedur | TXTOUT_WRITE_OBJECT ! [][] |
Beschreibung | Schreibt das OUT-Objekt in die Outputdatei. |
Beispiel |
|
Prozedur | TXTOUT_WRITE_OBJECT1 ! file |
Beschreibung | Schreibt das OUT-Objekt in die Outputdatei. |
Beispiel |
|
Prozedur | TXTOUT_WRITE_RECORD1 ! record |
Beschreibung | Schreibt einen Record. |
Beispiel |
|
Prozedur | TXTOUT_CLOSE ! [][] |
Beschreibung | Schliesst den Modul und gibt die durch den Modul belegten Resourcen wieder frei. Die Prozedur wird von RUN1 automatisch aufgerufen. |
Beispiel |
|
! Dieser Skript uebersetzt Fixpunkte einer INTERLIS ! Datei in eine Textdatei. Die erste Zeile der Textdatei ! enthaelt alle Attributnamen. Die weiteren Zeilen enthalten ! die Punktfelder getrennt durch Tabulatorzeichen (ASCII = 9). MAP USER_INPUT1 DIALOG => FILE MESSAGE => 'Enter .itf Input File' FILE_FILTER => itf FILE_EXISTS => TRUE OPT => input END_MAP MAP USER_INPUT2 DIALOG => FILE MESSAGE => 'Enter .txt Output File' FILE_FILTER => txt FILE_EXISTS => FALSE OPT => output END_MAP MAP ILIN_PARAM INTERLIS_DEF => \models\DM01AVCH24D.ili STATISTICS => ON ENUM_TO_TEXT => ON END_MAP MAP TXTOUT_PARAM STATISTICS => ON DELIMITER => 9 ! ASCII-Code or Character HEADER => ON ! ON|OFF END_MAP MAP RECORD_LFP1 FILE => LFP1.txt Art => IN.TABLE Nummer => IN.Nummer X => IN.X Y => IN.Y Z => IN.Z END_MAP MAP RECORD_LFP2 FILE => LFP2.txt Art => IN.TABLE Nummer => IN.Nummer X => IN.X Y => IN.Y Z => IN.Z END_MAP MAP RECORD_LFP3 FILE => LFP3.txt Art => IN.TABLE Nummer => IN.Nummer X => IN.X Y => IN.Y Z => IN.Z END_MAP MAP INPUT_SOURCES I1 => ILIN,OPT.input END_MAP MAP INOUT I1 => IN.TOPIC,IN.TABLE I1,FixpunkteKategorie1,LFP1 => LFP_prepare_0,R_1,RECORD_LFP1 I1,FixpunkteKategorie2,LFP2 => LFP_prepare_0,R_1,RECORD_LFP2 I1,FixpunkteKategorie3,LFP3 => LFP_prepare_0,R_1,RECORD_LFP3 I1,* => OFF END_MAP MAP MACRO ! macros R_1 => TXTOUT_WRITE_RECORD1 DIN => DISPLAY_OBJECT1,IN DOUT => DISPLAY_OBJECT1,OUT END_MAP PROCEDURE LFP_prepare_0 IN.Geometrie POINTX '3' ROUND => IN.X IN.Geometrie POINTY '3' ROUND => IN.Y IN.HoeheGeom '3' ROUND => IN.Z END_PROCEDURE |INCL \script\ilin.mod |INCL \script\txtout.mod |INCL \script\run1.prg