Benutzer-Werkzeuge

Webseiten-Werkzeuge


de:traffic:timetable:include_require

Einbindung externer Fahrpläne

In Traffic-Fahrplänen können weitere Fahrpläne eingebunden werden. Dies geschieht mit dem Befehl $INCLUDE oder $REQUIRE.

Zwei typische Einsatzszenarien für externe Fahrpläne sind zum einen sehr große Fahrpläne, die so auf mehrere Dateien aufgeteilt werden können, und zum anderen Fahrpläne, die als „Bibliotheken“ in mehreren Fahrplänen verwendet werden können. In letzterem Fall kann man sich beispielsweise komplette „de:traffic:timetable:foreground_background|Vorder- und Hintergründe]] in einem einzigen Fahrplan definieren und dann in beliebig vielen Fahrplänen verwenden.

Die Syntax ist:

$INCLUDE Dateipfad

bzw.

$REQUIRE Dateipfad

Wenn der externe Fahrplan im selben Ordner liegt wie der, in den er eingebunden wird, reicht als Pfadangabe der Dateiname. Ansonsten ist die Angabe eines relativen oder absoluten Pfads nötig.

Unterschied zwischen $INCLUDE und $REQUIRE

Der Unterschied zwischen $INCLUDE und $REQUIRE liegt im Verhalten bei mehrfacher Verwendung. Wenn ein Fahrplan nur einmal eingebunden wird, gibt es keinen Unterschied.

Mittels $INCLUDE wird ein externer Fahrplan jedes Mal wieder aufs Neue eingebunden und sein Inhalt jedes Mal aufs Neue ausgelesen. Wenn der Fahrplan Bewegungszeilen enthält, die genau an dieser Stelle ausgeführt werden sollen, ist $INCLUDE der richtige Befehl. Ein denkbares Szenario wäre, einen Stapel Bewegungen in einen externen Fahrplan auszulagern und immer wieder in anderen Vorder- und Hintergründen einzubauen, ohne daß man sie mehrmals formulieren muß.

Im Gegensatz dazu werden mittels $REQUIRE eingehängte Fahrpläne nur einmal eingelesen, egal, wie oft sie eingebunden sind. $REQUIRE ist die richtige Wahl für grundlegende einmalige Definitionen. Das spielt beispielsweise dann eine Rolle, wenn man eine ganze Anzahl an immer wieder verwendeten „Bibliotheksfahrplänen“ hat, die alle auf dieselben Optionen zurückgreifen und auch für sich allein ausführbar sind. Diese Optionen müssen dann natürlich in den Bibliotheksfahrplänen zur Verfügung stehen, aber Optionen dürfen immer nur einmal definiert werden. Dann trägt man die Optionen in einen eigenen Fahrplan ein und bindet den per $REQUIRE in alle Fahrpläne ein, die diese Optionen benötigen.

Abfrage des Status als Hauptfahrplan

Traffic kann in Fahrplänen erkennen, ob sie direkt gestartet oder per $INCLUDE/$REQUIRE extern eingebunden werden. Dafür wird der Wert von FILELEVEL abgefragt. Wenn dieser 1 ist, wurde der Fahrplan direkt gestartet. Höhere Werte zeigen die Verschachtelungstiefe per $INCLUDE/$REQUIRE an.

Die Syntax ist ähnlich wie bei Optionen eine Art Wenn/Dann/Sonst-Konstruktion:

{FILELEVEL=1?
Gültig, wenn der Fahrplan der Hauptfahrplan ist
?
Gültig, wenn der Fahrplan in einen anderen Fahrplan eingebunden ists
}

oder

{FILELEVEL=1?Hauptfahrplan?eingebunden}

Dabei ist der Sonst-Teil nebst dem vorangehenden zweiten Fragezeichen optional und kann bei Nichtbedarf weggelassen werden.

Cookies helfen bei der Bereitstellung von Inhalten. Durch die Nutzung dieser Seiten erklären Sie sich damit einverstanden, dass Cookies auf Ihrem Rechner gespeichert werden.
Weitere Information
de/traffic/timetable/include_require.txt · Zuletzt geändert: 2020/12/29 20:16 von marting