API Basic Include de - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki

Include

ClassicUO • Basic

Include lädt eine weitere Quelldatei vor Analyse und Ausführung. Funktionen und Variablen werden verfügbar; Prozeduren oder Threads starten dadurch nicht automatisch.

Genaue Syntax

Include "fileName"

Parameter

  • fileName — fileName: nicht leerer Dateiname in einfachen oder doppelten Anführungszeichen. Relativer oder absoluter wörtlicher Pfad, keine Variable und kein Ausdruck. Beliebige Erweiterung; Inhalt muss vom Interpreter unterstützter Quelltext sein.

Rückgabewert

Kein Rückgabewert: Anweisung zur Quellvorbereitung. Include(...) nicht zuweisen und kein ID, TRUE/FALSE oder 1/0 erwarten. Eingebundene Funktionen liefern eigene Werte mit RETURN.

Verhalten

  • Include auf eigener Zeile außerhalb SUB/FUNCTION. Suche neben der einbindenden Datei, danach in deren Include-Unterordner. Verschachtelte Pfade beziehen sich auf die aktuelle Bibliothek. Hauptdatei vor relativen Pfaden speichern.
  • Jeder vollständige Pfad wird einmal eingebunden. Zyklus A → B → A ergibt SC016. Pfad-, Zugriffs- und Syntaxfehler verhindern den Start vor globalen Initialisierungen. Diagnose und Debugger behalten Originaldatei und Zeile.
  • Zeichenketten und SUB/FUNCTION in derselben Datei schließen. Erneute Deklaration einer globalen Variable oder Konstante erzeugt SC017 vor dem Start.
  • Der nächste Start liest geänderte Bibliotheken; vorbereitete oder laufende Skripte behalten ihren Quellstand. Keine Profilübernahme und kein Start anderer Skripte.
  • Jede Datei darf Option Explicit vor eigenen Deklarationen setzen, sonst gilt die Hauptdatei. Deklarationen teilen einen Namensraum; Module entstehen nicht automatisch.
  • UTF-8 mit BOM-Erkennung. Grenzen: 128 Dateien einschließlich Hauptdatei, 32 Ebenen, 16.777.216 Quellzeichen. Include in Kommentaren oder Zeichenketten lädt nichts.
  • Jedes Beispiel hat einen eigenen Ordner. Main.bas und alle gezeigten Dateien mit exakten Namen und Unterordnern speichern. Fertige Gruppen: API Manual/Examples/Basic.Include/1, /2, /3. Main.bas ausführen, Dateien nicht zusammenfügen.

Beispiele

1. Gemeinsame Funktion

# Main.bas bindet Common.bas ein und ruft Add(4, 7) auf. left und right werden als Werte übergeben; Add liefert die Summe, Main Integer 11. Common.bas startet nicht allein.
Option Explicit On
Include "Common.bas"
SUB Main()
    RETURN Add(4, 7)
END SUB

Erläuterung der Parameter und Ausführung:

Main.bas bindet Common.bas ein und ruft Add(4, 7) auf. left und right werden als Werte übergeben; Add liefert die Summe, Main Integer 11. Common.bas startet nicht allein.

Common.bas

Option Explicit On
FUNCTION Add(ByVal left, ByVal right)
    RETURN left + right
END FUNCTION

2. Verschachtelte Bibliothek

# Main.bas bindet lib/Route.bas ein, diese Math.bas aus ihrem lib-Ordner. Distance(-3, 5) übergibt dx=-3, dy=5 an Manhattan; Abs entfernt Vorzeichen, Summe Integer 8. Keine Spielfigurbewegung.
Option Explicit On
Include "lib/Route.bas"
SUB Main()
    RETURN Distance(-3, 5)
END SUB

Erläuterung der Parameter und Ausführung:

Main.bas bindet lib/Route.bas ein, diese Math.bas aus ihrem lib-Ordner. Distance(-3, 5) übergibt dx=-3, dy=5 an Manhattan; Abs entfernt Vorzeichen, Summe Integer 8. Keine Spielfigurbewegung.

lib/Route.bas

Option Explicit On
Include "Math.bas"
FUNCTION Distance(ByVal dx, ByVal dy)
    RETURN Manhattan(dx, dy)
END FUNCTION

lib/Math.bas

Option Explicit On
FUNCTION Manhattan(ByVal dx, ByVal dy)
    RETURN Abs(dx) + Abs(dy)
END FUNCTION

3. Wiederholtes Einbinden

# Common.bas und ./Common.bas bezeichnen dieselbe Datei: CONST und Funktion werden einmal deklariert. SharedValue=7; GetShared() liefert 7, Main multipliziert mit 2 und liefert Integer 14. Beide Dateien verwenden Option Explicit On.
Option Explicit On
Include "Common.bas"
Include "./Common.bas"
SUB Main()
    RETURN GetShared() * 2
END SUB

Erläuterung der Parameter und Ausführung:

Common.bas und ./Common.bas bezeichnen dieselbe Datei: CONST und Funktion werden einmal deklariert. SharedValue=7; GetShared() liefert 7, Main multipliziert mit 2 und liefert Integer 14. Beide Dateien verwenden Option Explicit On.

Common.bas

Option Explicit On
CONST SharedValue = 7
FUNCTION GetShared()
    RETURN SharedValue
END FUNCTION

en · ru · uk · fr · de · it · es · zh-tw · ja · ko

Basic