Keresés

Hirdetés

Új hozzászólás Aktív témák

  • Teasüti

    nagyúr

    válasz volvoguy #244 üzenetére

    Lássuk csak...
    A variable változót jelent, ami programozásban is pont azt tudja, mint a matekban, hogy fel tud venni egy értéket. Esetünkben típusától függően lehet szám, betű, egyéb karakter és karakter lánc is (szöveg). Szerencsére a típusával nem kell foglalkozni, azt a Tasker magától eldönti a felvett értéke alapján. Ez annyiból fontos - hogy érthető legyen -, ha számot adsz meg, akkor szám típusú lesz, és miután deklaráltad (létrehoztad) a változót, utána ha lekérdezed az értékét, akkor a szám típusúnak mindig nulla lesz alapból, hiába nem adtál neki semmilyen értéket. A "szöveg" típusúak megmaradnak üresnek, amíg nem kapnak egy értéket.

    Na most a változókat feltételek vizsgálatakor szokás alkalmazni, például azt mondom, hogy kikapcsolom a wifit, ha a képernyő lezár. Ha ez bekövetkezik, akkor a %SCRLCK változó értéke felveszi a 2-t. Most hogy ezt hogyan, azt nem firtatjuk még az egyszerűség kedvéért (kolléga feljebb írt róla). Majd a feltételben (IF) megvizsgáljuk a %SCRLCK változó értékét, és attól függően végezzük el a feladatot, hogy mi az. Ha a feltétel igaznak bizonyul, akkor hajtódik végre az a parancs, amit feltételhez kötöttünk. Ha hamis az a feltétel (nem teljesül), akkor nem hajtódik végre a parancs és tovább lép a program a következő programsorra (sorban a következő lépés a Task-ban).
    Így néz ki a feltétel: IF %SCRLCK = 2 akkor hajtsd végre a parancsot.
    Kolléga feljebb ~ karaktert használt, ami annyit tesz, hogy "egyezik" (matches). Ez szöveges vizsgálatnál használatos, de számok esetén is lehet alkalmazni, de arra figyelni kell, hogy ilyenkor szövegesen vizsgálja a számokat is, nem pedig számként. (hogy ennek milyen gyakorlati buktatója van, arra most nem jut eszembe példa) De egy ilyen fajta így néz ki:
    IF %SCRLCK ~ yes akkor blablabla. Vagyis itt a változónak egy adott karakterlánccal kell egyezni, ami természetesen szám is lehet (kivételek a kézikönyvben, azokat leszámítva ASCII karakterek lehetnek).

    Programozásban elterjedt, hogy az igaz és hamis állításokat 1-essel és 0-val helyettesítik, ahol az 1-es az igaz. Vagyis ha a képernyő lezár, akkor sokkal egyszerűbb a változónak megadni azt, hogy "1", mint szövegesen, hogy pl "igaz", "lock", "screen out", vagy bármi egyebet.
    Viszont van aki úgy programoz, hogy nem 0-át és 1-est használ, hanem 1-est és 2-est, mivel a szám típusú változók lekérdezésekor akkor is 0-át mutatnak, ha egyébként nem adtál meg nekik semmilyen értéket. Van pár helyzet, ahol nem biztos, hogy ezt figyelmen kívül lehet hagyni, bár én még nem találkoztam ilyen feladattal, ahol gondot okozott volna. Ami engem illet, nekem megfelel az 1-es és 0 is, mivel többnyire csak azt vizsgálom a feltételeimben, hogy mikor lesz igaz. Azt nem vizsgálom, hogy mikor hamis. De ha te csinálsz majd olyan feladatot, ahol a hamisnak is szerepe lesz, akkor figyelembe kell venni ezt a jelenséget, mert becsapós lehet.

    Kreálhatsz ilyeneket; ha majd ráérzel a lényegére, akkor általuk egy egészen új világ nyílik meg a Tasker-ben és olyan feladatokat is meg fogsz tudni oldani, amiről addig talán azt se hitted, hogy lehetséges. :K
    Mindig oda kell írni az elejére a százalékot, hisz az jelzi a programnak, hogy ez egy változó.
    Ha használsz a nevében nagy betűt, akkor ún. globális változó lesz (nem muszáj csupa nagy betűnek lennie), ami azt tudja, hogy az egész programban bárhonnét hozzá tudsz férni, láthatod.
    Ha csupa kis betűvel írod a nevét, akkor az lokális változó lesz, amit meg csak az adott Task-ban használhatsz, a többi Task nem látja (az egymásba ágyazott Task-ok sem látják). Ezt akkor szoktuk használni, amikor egy változóra csak addig van szükség, amíg lefut az adott Task és utána kukázható. Így nem fogja szemetelni a változó táblát (variables fül) fölöslegesen. Minél kevesebbet használsz, annál átláthatóbb marad.
    A lényeg pedig, hogy változót a Variable Set paranccsal tudsz deklarálni és ugyanezzel a paranccsal tudsz neki értéket is adni. Vagyis inkább ezzel csak beállítasz egy értéket egy változónak, de nyilván ha az a változó addig nem létezett, akkor okosan létre is hozza a program.

    Ezeken felül vannak beépített globális változók (csupa nagybetűsök gyárilag), amelyek az Android rendszert figyelik főként.
    %SCRLCK változó nincs alapból, azt a kolléga maga hozta létre egy profilban - pl. figyeli valahogy, hogy mikor zár le a képernyő (ne kérdezd, h hogy, ez nekem sem tiszta, hisz nincs rá context, ha jól látom) és ha lezárt, akkor task-ban csinál egy Variable Set %SCRLCK to 2 parancsot. (Hmm talán ő maga zárja le Tasker paranccsal, ami után meg simán deklarálja a változót, amíg fut az adott task)

    (#245) grabber
    Egyrészt ez nem az a topik, ami neked kell, másrészt ez nem így működik gyárilag? :F
    Én úgy gondoltam eddig, hogy az ismert hálózatok közül a legerősebbhez kapcsolódik.

    [ Szerkesztve ]

Új hozzászólás Aktív témák