Springen mit Goto und Variablen

Hallo,

ich möchte per IR-Fernbedienung gewisse Dinge in Ips steuern. Die Befehle will ich mit Goto anspringen. Das Sprungziel ist der Wert der in der Winlirc Variablen steht. Leider bekomme ich eine Fehlermeldung und bin etwas ratlos. So sieht der Code aus:



$FB = getvalue(30460 /*[Winlirc\WinLIRC\Fernbedienung]*/);
$Taste = getvalue(16545 /*[Winlirc\WinLIRC\Taste]*/);
#Echo $FB;
#Echo $Taste;

Goto $FB;

FBTV235S_SAT2:

Goto $Taste;

1:
	HM_WriteValueFloat(17017 /*[EG\Wohnzimmer\Licht\Couchtisch]*/, "LEVEL",1	 );
	Goto end;
3:
        HM_WriteValueFloat(17017 /*[EG\Wohnzimmer\Licht\Couchtisch]*/, "LEVEL",0.65	 );
	Goto end;
7:
        HM_WriteValueFloat(17017 /*[EG\Wohnzimmer\Licht\Couchtisch]*/, "LEVEL",0.65	 );
        ModBus_WriteCoil(48216 /*[EG\Wohnzimmer\Licht\Licht hinten]*/ ,false); //Gerät ausschalten
        ModBus_WriteCoil(16005 /*[EG\Wohnzimmer\Licht\Licht TV]*/, false); //Gerät ausschalten

end:

Oder ist das grundsätzlich ein falscher Ansatz?

Ich bin mir nicht so ganz sicher.
Aber kannst Du mit ‚goto‘ zu einer Variablen springen?
Ich meine, eine Sprungmarke muss ‚xxx:‘ lauten.

Hier wäre es doch sinnvoller mit ‚switch‘ und ‚case‘ zu arbeiten.

Das wäre wohl eher ein Fall für „Switch“, würd ich mal sagen…


switch ($Taste) {
    case "1":
        HM_WriteValueFloat(17017 /*[EG\Wohnzimmer\Licht\Couchtisch]*/, "LEVEL",1     );
        break;
    case "3":
        HM_WriteValueFloat(17017 /*[EG\Wohnzimmer\Licht\Couchtisch]*/, "LEVEL",0.65     ); 
        break;
    case "7":
        HM_WriteValueFloat(17017 /*[EG\Wohnzimmer\Licht\Couchtisch]*/, "LEVEL",0.65     );
        ModBus_WriteCoil(48216 /*[EG\Wohnzimmer\Licht\Licht hinten]*/ ,false); //Gerät ausschalten
        ModBus_WriteCoil(16005 /*[EG\Wohnzimmer\Licht\Licht TV]*/, false); //Gerät ausschalten 
        break;
}

Yeah,

Goto ist böse sagte mein Gott-hab-ihn-selig-EDV Lehrer schon vor 25 Jahren.

Switch…Case Rulez, wobei ich mir die Syntax nie merken kann ( wechsle andauernd zwischen VB, PHP, C und was weiß noch allem.)

gruß
bb

Ich gebs ja zu, musste auch erst wegen der Syntax nachgucken :stuck_out_tongue:

Switch, das isses. Werd ich gleich mal checken.
Danke schön.

Meine Programmierkenntnisse stammen noch vom VC 20, da gab es noch kein Switch :wink:

@audi2010
Im Prinzip hast du recht, aber Goto funktioniert nicht mit einer Variablen.

BASIC… goto… jaja, das kenne ich auch noch.