coord-transf.2d elements3d elementsnon geo scriptsfunctionscontrol statem.attributesvariousaddons
Data I/ODate TimeFilemanager I/OText I/OPropertyXML
OPEN INPUT OUTPUT CLOSE
Name
INPUT
Syntax
INPUT(channel, datasetID, fieldID, expression1[, expression2, ...])
Aufklappen Range
channel: Ergebnis ist positiver Integerwert; (einzusetzen ist eine Variable wie ch1)
datasetID: numerisch oder String
fieldID: Integer>0
ausdruck1,...: numerisch oder String
Aufklappen Description
Mit dem INPUT-Befehl wird der Inhalt der Datenbank entsprechend der Position des Befehlswertes (datasetID) und der angegebenen Spaltennummer (fieldID) abgefragt. Wird ein Element an der angegebenen Stelle gefunden (d.h. ist in der ersten Spalte der entsprechende Befehlswert in einer bestimmten Zeile vorhanden), wird der oder werden die in der abgefragten Zeile vorhandenen Werte ausgelesen und aufgelistet.

channel: Dieser String wird bereits beim OPEN-Befehl definiert und ist hier in gleicher Weise wieder einzusetzen (z.B. "ch1")
datasetID: Dies ist der Befehlswert, dessen Zeichenfolge in einer Datenbankdatei in der ganz linken Spalte gesucht wird.
fieldID: Dies ist die Spaltenzahl, von der an der gewählte Eintrag ausgegeben werden soll (kleinste Zahl : 1). Der Befehlswert steht immer an erster Stelle, erst danach wird mit der Zählung der Spaltenanzahl begonnen. Ist die Zahl z.B. 3, wird erst bei der 3. Spalte nach dem Befehlswert mit dem Auslesen begonnen.
ausdruck,...: dies sind die abzufragenden Variablen der Datenbank. Man kann einen einzigen Wert je Befehlswert bzw. Zeile abrufen oder mehrere aufeinander folgende.

Wie bei vielen GDL-Funktionen muss INPUT mit einer Dummy-Variablen aufgerufen werden (z.B. nr=INPUT...). nr gibt aber gleichzeitig die Anzahl der ausgelesenen Datenfelder je Zeile zurück.

Aufklappen Example
Auslesen von Preisen aus einer externen Datei und Laden in das Bibliothekselement:

DIM sys[4][2]
sys[1][1]="30.1481.88"
sys[2][1]="30.1482.88"
sys[3][1]="30.1483.88"
sys[4][1]="30.1484.88"

ch=OPEN("DATA","wimo_preise.txt","MODE=RO,SEPARATOR=':', DIALOG")
FOR i=1 TO 4
searchfield=sys[i][1]
nr=INPUT(ch,searchfield,1,sys[i][2])
NEXT i
CLOSE ch


Zunächst wird ein Array erzeugt, in welchem in der ersten Ebene die Bestellnummern gespeichert werden.
Dann wird die Preisdatei geöffnet und es werden die Suchfelder mit dem Anfang "sys[i][1]" ausgelesen; der Inhalt in der entsprechenden Zeile wird in der zweiten Ebene des Arrays gespeichert.

Der Inhalt der Textdatei kann wie folgt aussehen und beliebige Kommentare enthalten:

Preistabelle für wimo_hochregal_35_09
Ganz links die Artikelnummer
Direkt dahinter OHNE Leerzeichen: 1 Doppelpunkt (zwingend)
Rechts der Einheitspreis in EURO : Trennung mit Punkt statt Komma

!!!! BITTE NUR DIE PREISE ÄNDERN !!!!!!!
!!!! BITTE PUNKT STATT KOMMA BEI PREISEN !!!!!!!

30.1481.88: 50.5
30.1482.88: 48.5
30.1483.88: 39.5
30.1484.88: 37.5


Aufklappen Specialities
Beim Befehlswert datasetID kommt es entgegen anderen Regeln bei GDL auf die exakte Schreibweise an:
"neues" ist nicht gleich "Neues". Hier muss also auf Groß- und Kleinschreibung geachtet werden.
Aufklappen ArchiCAD®
since 6.0
Aufklappen Tips and Tricks
Mit Hilfe der datasetID und der fieldID kann man quasi jedes beliebige Datenbankfeld ansteuern.
datensatzID ist immer die Zeile, genauer gesagt der 1. Wert einer Zeile.
feldID ist immer die Spalte, gezählt since 1 hinter recordID.
datensatzID befindet sich demnach in der (feldID-)Spalte 0.
Wenn man einen bestimmten Wert angesteuert hat, kann man diesen einen Wert oder weitere Werte in Folge hinter diesem angesteuerten Wert ausgeben, je nach dem, wieviel var-Werte im INPUT-Befehl angegeben sind.
Aufklappen References
GDL-Handbuch 9.0 (DE) p. 292
GDL-Handbuch 10.0 (DE) p. 297
GDL-Handbuch 11.0 (DE) p. 307
GDL Reference Guide 9.0 (INT) p. 282
GDL Reference Guide 10.0 (INT) p. 293
GDL Reference Guide 11.0 (INT) p. 297