Apple Script - opakování akcí - MujMAC.cz - Apple, Mac OS X, Apple iPod

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:

Seriály

Více seriálů



Software

Apple Script - opakování akcí

7. září 2006, 00.00 | Opakování je matka moudrosti, proto si dnes v AppleScriptu ukážeme jak opakovat určité operace. Ať už potřebujeme něco zopakovat pětkrát, nebo stále dokola, dokud se nesplní nějaká podmínka, AppleScript nám vždy pomůže ke kýženému výsledku!

Většina programů je vytvořena proto, aby nám pomáhala, ulehčila nám práci a dělala za nás spoustu věcí bez naší asistence. A právě to je největší výhoda AppleScriptu, že věci, které stále opakujeme, za nás umí udělat automaticky. Ať je to změna velikosti fotek pro posílání mailem, přejmenování všech souborů ve složce, nebo jejich tisk, potřebujeme zopakovat určitý proces tak, aby se zpracovaly všechny soubory.

Docílíme toho příkazem repeat. Ten je stejně jako if a try víceřádkovým blokem, který ohraničuje příkazy které se mají stále opakovat. Samozřejmě může obsahovat jak nejrůznější ify, trye, ale také další repeaty. Máme několik modifikací repeat příkazu, a to: repeat X times, repeat until, repeat while a repeat with. Dnes a příště se na ně postupně podíváme a řekneme si k čemu je který dobrý, jak funguje a jak ho použít.

Nejprve se podíváme na repeat X times a ukážeme si jak takový repeat funguje. Tuto variantu použijeme, víme-li, kolikrát chceme něco zopakovat. X je zde rovno integeru, tedy jakémukoli celému číslu. V případě, že je číslo záporné, repeat neproběhne ani jednou. Ukážeme si pár příkladů, do nového okna napište:

set opacko to 1
repeat 5 times
	display dialog "dialog císlo " & opacko
	set opacko to opacko + 1
end repeat

Tento program demonstruje, jak repeat funguje. Nejprve definujeme proměnnou kterou pak pětkrát za sebou zobrazíme, přičemž je pokaždé zvýšena o jednu. Tím docílíme, že je číslo v každém dialogu rovno jeho pořadí. Možná namítnete, že by se vše dalo udělat takto:

display dialog "dialog císlo 1" 
display dialog "dialog císlo 2" 
display dialog "dialog císlo 3" 
display dialog "dialog císlo 4" 
display dialog "dialog císlo 5" 

Nesmíme ale zapomenout, že místo čísla 5 může být třeba číslo 5632148, a že místo příkazu display dialog může být stořádkový skript. Navíc si všimněte výsledku obou skriptů, v prvním případě je to hodnota proměnné a tedy počet zopakování + výchozí 1, ve druhém vidíme jen výsledek posledního dialogu.

Samozřejmě počet zopakování může být zastoupen proměnnou s integerovou hodnotou, nebo i výpočtem. Upravme si první skript takto:

set Dny to {"Monday", "Tuesday", "Wensday", "Thurseday", ¬
"Friday", "Saturday", "Sunday"}
set dnes to (weekday of (current date)) as string
set opacko to 1
repeat count of Dny times
	if dnes is equal to item opacko of Dny then
		display dialog "Tody is " & item opacko of Dny & "!"
		exit repeat
	end if
	set opacko to opacko + 1
end repeat
display dialog "repeat goes " & opacko & " times."

Tady už začínáme opravdu programovat a naše skripty začnou být složitější a složitější. Vysvětleme si proto podrobně co se v průběhu programu děje. Nejprve jsme definovali nějaký seznam, v tomto případě dny v týdnu, a zjistili od systému jaký je dnes skutečně den. Samozřejmě mohl seznam obsahovat třeba ovoce a my ho porovnávali s výsledkem dialogu "Řekni mi tvé nejoblíbenější ovoce.". Pak následuje proměnná opacko a začíná repeat. Počet opakování je nadefinován pomocí součtu všech položek v seznamu, čímž je zajištěno, že se dostane na každou z nich. Uvnitř repeatu ifem porovnáme zda je položka seznamu shodná s dnešním dnem a pokud není, přičteme 1 k opacku a opakujeme s dalším dnem. V případě, že shodné jsou, program nám to sdělí dialogem. Všimněte si příkazu exit repeat, ten používáme k opuštění repeatu v případě, že ho chceme předčasně ukončit, v tomto případě po dosažení správného dnu. V případě složitějších repeatů je dobré si udělat jakýsi tajný východ pro případ, že chcete program ukončit, nebo že se nějakou chybou zacyklil do nekonečna. Stačí try který při chybě ukončí repeat, nebo možnost v dialogu místo požadovaného vstupu napsat slovo exit a ukončit tak repeat. Na toto si ale musíte dávat pozor hlavně u repeatů které si představíme až příště. Celý skript pak končí dialogem dokazujícím nám funkčnost exit repeatu. Ten nám ukáže číslo shodné s dnešním dnem Pokud ale exit repeat vyřadíme, proběhne 7x, tak jak bylo nadefinováno na začátku.


To je pro dnešek vše, příště si ukážeme zbylé varianty repeatů a ukážeme si jak používat flagy. Doufám, že jste vše pochopili, protože opakování dělá z AppleScriptu mocnou zbraň která nám dokáže zjednodušit náš život s Macem. Máte-li nějaký dotaz, nebojte se zeptat v diskuzi.

Obsah seriálu (více o seriálu):

Tématické zařazení:

 » Rubriky  » Informace  

 » Rubriky  » Agregator  

 » Rubriky  » Software  

Diskuse k článku

 

Vložit nový příspěvek   Sbalit příspěvky

 

Angličtina

Autor: Glutexo Muž

Založeno: 23.01.2008, 18:29
Odpovědí: 0

Dovolil bych si podotknout, že vzhledem k tomu, že se názvy dnů v týdnu porovnávají s řetězcem, který nám vrátí systém, bylo by vhodné je napsat do toho pole Dny alespoň správně. Pochybuji, že "Wensday" is equal to "Wednesday" (zrovna dnes ^_^)…

Odpovědět na příspěvek

 

 

Odpověď na příspěvek:

Dovolil bych si podotknout, že vzhledem k tomu, že se názvy dnů v týdnu porovnávají s řetězcem, který nám vrátí systém, bylo by vhodné je napsat do toho pole Dny alespoň správně. Pochybuji, že "Wensday" is equal to "Wednesday" (zrovna dnes ^_^)…


Jméno:

Pohlaví:

,

E-mail:

Předmět:

Příspěvek:

 

Kontrola:

Do spodního pole opište z obrázku 5 znaků:

Kód pro ověření

 

 

 

 

Nejčtenější články
Nejlépe hodnocené články
Apple kurzy

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: