Ankündigung

Einklappen
Keine Ankündigung bisher.

IIF Funktion

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    [Featurewunsch] IIF Funktion

    Hallo Michael,

    ich würde mich sehr freuen, wenn Ihr eine IIF Funktion einbauen könntet.

    Dann könnte man so etwas schreiben:
    Code:
    Meldung = $Schalter ist $+iif(mySwitchVariable,$An$,$Aus$)
    Der jetzige Code sähe in etwa so aus:

    Code:
    if mySwitchVariable=AN then Meldung=$Schalter ist An$ else Meldung=$Schalter ist Aus$ endif
    Mit eine iif Anweisung wäre das ganze etwas flexibler, sähe besser aus und wäre besser wartbar.

    Gruß aus dem Norden,
    Bernd


    #2
    Zitat von bmx Beitrag anzeigen
    Hallo Michael,
    ich würde mich sehr freuen, wenn Ihr eine IIF Funktion einbauen könntet.
    Konzeptionell sicher machbar. Es spricht aber nix dagegen, diese iif-Funktion als Makro zu schreiben, etwa in der Form
    Code:
    IIF(mySwitchVariable,Meldung,$Schalter ist An$,$Schalter ist Aus$)
    Mit eine iif Anweisung wäre das ganze etwas flexibler, sähe besser aus und wäre besser wartbar.
    Wieso wartbarer? Ich fände das mit dem Makro noch besser.
    offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
    Enertex Produkte kaufen

    Kommentar


      #3
      Zitat von enertegus Beitrag anzeigen
      Konzeptionell sicher machbar. Es spricht aber nix dagegen, diese iif-Funktion als Makro zu schreiben, etwa in der Form
      Code:
      IIF(mySwitchVariable,Meldung,$Schalter ist An$,$Schalter ist Aus$)
      Wieso wartbarer? Ich fände das mit dem Makro noch besser.
      Nee, das mit dem Makro ist nicht sinnvoll. Das kann ich ja nur einmal einsetzen oder ich muß für alles eine neue Variable generieren.

      Wenn wir schon ins Detail gehen:
      Code:
      if change(Licht_Garagenauffahrt) or change(Licht_Weg_Hauseingang) then {
          write("Garageneinfahrt Licht-1/0/200", Licht_Garagenauffahrt or Licht_Weg_Hauseingang);
          betreff=$Garageneinfahrt Licht: $
      if (Licht_Garagenauffahrt or Licht_Weg_Hauseingang) then betreff=betreff+$An$ else betreff=betreff+$Aus$ endif;
          betreff=betreff+$ Garagenauffahrt: $;
      if (Licht_Garagenauffahrt) then  betreff=betreff+$An$ else betreff=betreff+$Aus$ endif;
          betreff=betreff+$ Licht Hauseingang $;
          if (Licht_Weg_Hauseingang) then betreff=betreff+$An$ else betreff=betreff+$Aus$ endif;
          sendmail(email,betreff,nachricht)
      } endif
      Das ist in meinen Augen ein Codemonster.

      Besser wäre:

      Code:
      if change(Licht_Garagenauffahrt) or change(Licht_Weg_Hauseingang) then {
          write("Garageneinfahrt Licht-1/0/200", Licht_Garagenauffahrt or Licht_Weg_Hauseingang);
          betreff=$Garageneinfahrt Licht: $+iif(Licht_Garagenauffahrt or Licht_Weg_Hauseingang,$An$,$Aus$)+$ Garagenauffahrt: $+iif(Licht_Garagenauffahrt,$An$,$Aus$)+$ Licht Hauseingang $+iif(Licht_Weg_Hauseingang,$An$,$Aus$);
          sendmail(email,betreff,nachricht)
      } endif

      Kommentar


        #4
        Zitat von bmx Beitrag anzeigen
        Nee, das mit dem Makro ist nicht sinnvoll. Das kann ich ja nur einmal einsetzen oder ich muß für alles eine neue Variable generieren.
        Wieso, das brauchst Du doch nicht zu machen, du brauchst doch keine extra Variable?
        offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
        Enertex Produkte kaufen

        Kommentar


          #5
          Zitat von enertegus Beitrag anzeigen
          Wieso, das brauchst Du doch nicht zu machen, du brauchst doch keine extra Variable?
          Dann bin ich gespannt, wie Du das obige Codebeispiel mit einem Makro vereinfachen willst.

          Gruß,
          Bernd

          Kommentar

          Lädt...
          X