Jump to content

Lua Abfrage, ob variable existiert?


Empfohlene Beiträge

Hi

Ich muß in Lua den Inhalt einer Liste (variable in einem Signal) Namens "Liste1" mit 2 Texteinträgen "T1" und "T2"  in einem Objekt auswerten, aber nur wenn sie existiert, ansonsten nehme ich immer "T3"

Wie mache ich das? Ich laufe da immer auf einen error.

Danke und Gruß
Thomas

Bearbeitet von HaNNoveraNer
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor einer Stunde schrieb HaNNoveraNer:

aber nur wenn sie existiert

Wenn die Liste existiert?
Oder wenn Elemente in der Liste existieren?

Das ist nämlich nicht dasselbe. Wenn du T1 und T2 löscht, dann existiert Liste1 als leere Liste. Willst du (in dem Glauben, alles sei vorhanden) auf T1 zugreifen, dann bekommst du die Fehlermeldung, dass dieses Feld nicht existiert.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hier mein richtiger Code, der den  Fehler produziert.
Ich will wissen, ob die Liste existiert.

 

local route=vehicle.variables["route"]

if fsignal.variables["R_Alle"] ~= nil then
    fsrouten=fsignal.variables[route]
  else
    fsrouten=fsignal.variables["R_Alle"]
end

 

Bearbeitet von HaNNoveraNer
Link zu diesem Kommentar
Auf anderen Seiten teilen

statt == nil nimm not

local route=vehicle.variables["route"]

if not fsignal.variables["R_Alle"] then
    fsrouten=fsignal.variables[route]
  else
    fsrouten=fsignal.variables["R_Alle"]
end

Aber das geht noch viel schicker:

fsrouten = fsignal.variables["R_Alle"] or vehicle.variables["route"]

fertig.

Das nimmt "R_Alle", wenn es existiert und ansonsten "route"

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich habe es jetzt mit dem NOT gemacht, da ich mich entschlossen habe, beides anzugeben, damit man Züge auch ohne Route
fahren lassen kann, die dann alle möglichen bzw. unter R_Alle angegebenen Fahrstrassen nehmen.
Mir raucht aber schon der Schädel. Es ist garnicht so einfach eine komplette Fahrstraßensteuerung mit Weichen, Routen, Ausweichfahrstraßen und Zufall u.s.w. unabhängig vom
Programmcode nur mit dem Timer, 2 Kontakten und dem Startsignal zu programmieren.
Aber ich bin fast fertig...

Bearbeitet von HaNNoveraNer
Link zu diesem Kommentar
Auf anderen Seiten teilen

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto besitzen, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen.

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...