switch/case - mehrere Ganzzahlen als Kriterium Topic is solved

Post Reply
JensH
Posts: 879
Joined: 30.07.2018, 18:59
Location: Dresden

switch/case - mehrere Ganzzahlen als Kriterium

Post by JensH » 15.02.2019, 18:22

Hallo Rob,
laut WIKI kann man bei numerischen Variablen mehrere Ganzzahlen angeben, wie hier im Skriptauszug.
Leider wird die Bedingung dann nicht ausgewertet. :?

Code: Select all

<!-- Stammzug 1 Aufruf von Fahrplan P18714 / Richtung Freiberg -->
...
<case val="P18714">
  <trace text="688 - action: train-light-001.xml - call from: %wday%"/>
  <switch var="%wday%">
    <case val="1|2|3|4|5">
      <call id="Stamm12F"/>
    </case>
    <case val="6">
      <call id="Stamm1F"/>
    </case>
    <case val="7">
      <call id="Stamm1F"/>
    </case>
  </switch>
...
</case>

Schorse
Posts: 5352
Joined: 12.09.2008, 19:38
Location: D - Niedersachsen

Re: switch/case - mehrere Ganzzahlen als Kriterium

Post by Schorse » 15.02.2019, 18:54

Hallo Jens,

Deine Rocrailversion ist zu alt!

JensH
Posts: 879
Joined: 30.07.2018, 18:59
Location: Dresden

Re: switch/case - mehrere Ganzzahlen als Kriterium

Post by JensH » 16.02.2019, 08:03

Moin Gerd,
wie meinst du das? Habe die 15044 installiert, die ist von heute.

rjversluis
Site Admin
Posts: 42308
Joined: 10.04.2006, 08:48
Location: Speyer, Germany
Contact:

Re: switch/case - mehrere Ganzzahlen als Kriterium

Post by rjversluis » 16.02.2019, 09:04

Moin Jens,

was meinst du mit diese Satz?
Leider wird die Bedingung dann nicht ausgewertet.
Wird der case nicht ausgewertet?

peter&basti
Moderator
Posts: 6756
Joined: 09.01.2012, 22:09
Location: Vienna, Austria

Re: switch/case - mehrere Ganzzahlen als Kriterium

Post by peter&basti » 16.02.2019, 09:21

Hallo Jens,

Hat jetzt nichts mit dem switch/case zu tun, aber mit dem was Du aus meiner Sicht mit dem Script bewirken möchtest.

ich sehe in Deinem Script, Du möchtest je nach Wochentag unterschiedliche Fahrpläne aufrufen.
Hiermit ein Beispiel, eine Anregung wie ich das mache:

Ich mache Vergleichbares mit der "Fahrplan im Leerlauf suchen" Option.

- der Zug bekommt eine Klasse (die Zugnummer)
- die Fahrpläne für diesen Zug ebenfalls die Zugnummer als Klasse

- ich habe zB jeweils zwei stündliche Fahrpläne in jede Richtung zwischen Stunde 6 und Stunde 22 (das ist dann ein Halbstunden-Takt), Montag-Freitag
- darüber hinaus jeweils einen stündlichen Fahrplan in jede Richtung zwischen Stunde 23 und Stunde 5 (das ist dann ein Stunden-Takt) Montag-Sonntag
- dann noch jeweils einen stündlichen Fahrplan in jede Richtung zwischen Stunde 6 und Stunde 22 (das ist dann ein Stunden-Takt) Samstag-Sonntag

Der Zug steht mit der oben genannten Option auf IDLE im Block und pickt sich zur richtigen Zeit den richtigen Fahrplan.

Dafür braucht es kein Script.

Schorse
Posts: 5352
Joined: 12.09.2008, 19:38
Location: D - Niedersachsen

Re: switch/case - mehrere Ganzzahlen als Kriterium

Post by Schorse » 16.02.2019, 10:47

Hallo Jens,
wie meinst du das? Habe die 15044 installiert, die ist von heute.
Ich meine wenn Du im Avatar Deine Rocrailversion in Fettschrift angibst solltest Du es auch aktualisieren.
Oder lass' es einfach sein!

Code: Select all

switch var="%wday%">
Welchen Inhalt hat den die Variable "%wday%"?

JensH
Posts: 879
Joined: 30.07.2018, 18:59
Location: Dresden

Re: switch/case - mehrere Ganzzahlen als Kriterium

Post by JensH » 16.02.2019, 10:48

Moin Rob,
genau, die Mehrfachbedingung wird ignoriert. Einzeln funktioniert es.

Moin Peter,
nein, ich will keine unterschiedlichen Fahrpläne starten. Ich schalte damit den Zugschluss und
die Innenbeleuchtung (je nach Tageszeit, die Bedingungen stehen in den aufgerufenen Funktionen).

Das kommt daher, das z.B. von Montag - Freitag teilweise eine andere Zugzusammenstellung fährt
als am Samstag oder/und Sonntag.

JensH
Posts: 879
Joined: 30.07.2018, 18:59
Location: Dresden

Re: switch/case - mehrere Ganzzahlen als Kriterium

Post by JensH » 16.02.2019, 10:51

Moin Gerd,
hm, ob nun 15015 oder 15044, das ist an dieser Stelle Wurst, also nicht für die Existenz der
Variable, sondern für die Funktion switch/case.

Der Wertebereicht von %wday% reicht von 0(So) - 6(Sa), je nach Wochentag. Was nicht funktioniert
ist die Auswertung bei mehreren Werten, getrennt durch "|"
Last edited by JensH on 06.05.2019, 09:46, edited 1 time in total.

rjversluis
Site Admin
Posts: 42308
Joined: 10.04.2006, 08:48
Location: Speyer, Germany
Contact:

Re: switch/case - mehrere Ganzzahlen als Kriterium

Post by rjversluis » 16.02.2019, 11:57

Moin Jens,

OK, ich kann das Problem nachstellen.

rjversluis
Site Admin
Posts: 42308
Joined: 10.04.2006, 08:48
Location: Speyer, Germany
Contact:

Re: switch/case - mehrere Ganzzahlen als Kriterium

Post by rjversluis » 16.02.2019, 12:00

Hi Jens,

das Problem ist das der switch mit ein String gemacht wird und nicht mit ein Zahl.
%wday% ist Text und kein Zahl.
Also, dann funktioniert es nicht.

JensH
Posts: 879
Joined: 30.07.2018, 18:59
Location: Dresden

Re: switch/case - mehrere Ganzzahlen als Kriterium

Post by JensH » 16.02.2019, 12:08

Hi Rob,
das leuchtet ein, wenn es keine Zahl ist sondern ein String.

Ich hatte eine Zahl an der Stelle erwartet, wie bei %hour% und %min%.

Schorse
Posts: 5352
Joined: 12.09.2008, 19:38
Location: D - Niedersachsen

Re: switch/case - mehrere Ganzzahlen als Kriterium

Post by Schorse » 16.02.2019, 12:17

Hallo Jens,
hm, ob nun 15015 oder 15044, das ist an dieser Stelle Wurst, also nicht für die Existenz der
Variable, sondern für die Funktion switch/case.
Du musst es ja wissen; Du bist ja Programmierer!
Der Wertebereicht von %wday% reicht von 1 - 7, je nach Wochentag.
Ich hatte nicht nach dem Wertebereich sondern nach dem Inhalt gefragt!
Entschuldige das ich eine so schwierige Frage gestellt habe.

JensH
Posts: 879
Joined: 30.07.2018, 18:59
Location: Dresden

Re: switch/case - mehrere Ganzzahlen als Kriterium

Post by JensH » 16.02.2019, 12:26

Hallo Gerd,
ich hatte Rob selbst um diese Variablen für XML-Skripte gebeten. Damit ist mir schon klar, das es diese
mit der 15015 noch nicht geben kann. Entschuldige bitte meine Nachlässigkeit, die Version in meinem
Profil nicht aktualisiert zu haben und nicht geprüft zu haben, ob es eine Zahl oder ein Text ist. Ich bin
ohne weiter darüber nachzudenken davon ausgegangen, dass es ich um eine Zahl handeln muss.

Der Rest, ich denke darüber sind wir endlich hinweg :roll:

Post Reply

Return to “XMLScripting & Aktionen (DE)”