If Variable gleich 3 oder 7 oder 4711 oder 317

  • 11 Antworten
  • Letztes Antwortdatum
K

kirschm

Stamm-User
93
Hallo, kann man eine If Abfrage machen, die checked, ob eine Variable eine von mehreren Werten hat (siehe Beispiel im Titel)? Die If Abfrage soll also True sein, wenn irgendein Wert zutrifft.

Falls die Sache z.B. mit einem Array funktioniert... habe noch nie Arrays in Tasker benutzt und wäre deshalb um eine etwas idiotensichere ausführliche Antwort hier dankbar...
 
Sind es begrenzt viele Werte oder unterschiedlich viele Werte?
 
Für den Anfang hätte ich kein Problem, wenn ich wüsste, wie es mit begrenzten Werten funktioniert, z.B. genau die 4 Zahlen im Titel des Threads.

Bitte als Lösung keine 4 If Abfragen... das bekomme ich auch hin... :cool2:
 
mal mit Array:

Variable %Meinezahlen = "3,7,4711,317"

1. <Irgendeine ausgelesener Wert>
2. Variable setzen %tempa = %Meinezahlen
3. Variable Aufteilen %tempa Teiler , !!!rotes Komma!!!
4. For Variable:%tempb Einträge:%tempa()
5. Popup %tempb (if %tempb eq <der ausgelesene Wert>)
6. EndFor
 
  • Danke
Reaktionen: kirschm
Besten Dank, oggy... genau, was ich gesucht habe... sehr gut erklärt für Dummies... works as designed...
 
dafür ist das Forum doch da ;)
 
es gibt ein oder-Zeichen "/" bei Vergleich ...insofern 3/7/4711/317
 
  • Danke
Reaktionen: oggy und kirschm
alexANDHilfe schrieb:
es gibt ein oder-Zeichen "/" bei Vergleich ...insofern 3/7/4711/317

Kannste mal ein kurzes simples Beispiel machen, wie man damit eine If-Abfrage macht, die simpler ist als von oggy beschrieben?
 
genau so in die If Bedingung reinschreiben: If 3/7/4711/317
3 oder 7 oder 4711 oder 317 muss erfüllt sein
 
  • Danke
Reaktionen: kirschm
Sajo schrieb:
genau so in die If Bedingung reinschreiben: If 3/7/4711/317
3 oder 7 oder 4711 oder 317 muss erfüllt sein

Muss ich mal ausprobieren... das wäre ja einfacher...
 
Vielen Dank an alle mit dem 'If 3/7/4711/317 Pattern Matching Tipp'. Funktioniert hervorragend!!!
[doublepost=1450547089,1450545789][/doublepost]Hier mal ein praktisches Anwendungsbeispiel mit beiden Methoden (die For / Array Methode ist deaktiviert, die If '/' Methode ist aktiv). Beide Methoden funktionieren gleich gut, die 'Pattern-IF' ist natürlich kürzer und eleganter.

Da mein Smartphone Time Contexte nur bei stündlicher Wiederholung zuverlässig ausführt, ist das mein Profil, um den Akku-Stand nur alle 3 Stunden anzusagen. Und zwar jeweils um 9,12,15,18,21 Uhr:

Profile: BattInfoAllg (56)
Time: From 09:00 every 1h Till 21:00
State: Display State [ Is:Off ]
State: Wifi Connected [ SSID:zensur* MAC:* IP:* ]
Enter: Anon (80)
A1: Perform Task [ Name:getFormattedDate Priority:%priority Parameter 1 (%par1):%TIMES Parameter 2 (%par2):HH Return Value Variable:%mkhour Stop:Off ]
A2: Perform Task [ Name:getFormattedDate Priority:%priority Parameter 1 (%par1):%TIMES Parameter 2 (%par2):nn Return Value Variable:%mkminute Stop:Off ]
A3: [X] Variable Set [ Name:%mkuhrzeiten To:09,12,15,18,21 Do Maths:Off Append:Off ]
A4: [X] Variable Set [ Name:%mkuhrzeitena To:%mkuhrzeiten Do Maths:Off Append:Off ]
A5: [X] Variable Split [ Name:%mkuhrzeitena Splitter:, Delete Base:Off ]
A6: [X] For [ Variable:%mkuhrzeitenb Items:%mkuhrzeitena() ]
A7: [X] If [ %mkhour ~ %mkuhrzeitenb ]
A8: [X] Perform Task [ Name:SayBattLevel Priority:%priority Parameter 1 (%par1): Parameter 2 (%par2): Return Value Variable: Stop:Off ]
A9: [X] End If
A10: [X] End For
A11: If [ %mkhour ~ 09/12/15/18/21 ]
A12: Perform Task [ Name:SayBattLevel Priority:%priority Parameter 1 (%par1): Parameter 2 (%par2): Return Value Variable: Stop:Off ]
A13: End If
 
Zuletzt bearbeitet:

Ähnliche Themen

H
Antworten
15
Aufrufe
495
MeinNickname
MeinNickname
T
Antworten
6
Aufrufe
388
Tarfi
T
holms
Antworten
3
Aufrufe
444
Cecoupeter
Cecoupeter
Zurück
Oben Unten