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:
![OBLIBENE_TITLE2](/templates/107/gr/print-logo.gif)
Informace
AppleScript - seznamy II.
9. března 2007, 11.00 | Tak, a jsou tu zase seznamy. Tentokrát si ukážeme, jak do seznamů položky přidávat a jak je zase odebírat. Jak nějakou položku zaměnit za jinou a jak spojovat různé seznamy dohromady. Zase to není nic složitého a použijeme již známé věci.
Hned na začátek si představíme příkazy length, reverse a rest. Příkaz length je stejný jako příkaz count a jeho výsledkem je integer říkající nám počet položek v seznamu. Zda si vyberete jeden nebo druhý je jen na vás, ale je dobré znát oba. Reverse nám dá zpět seznam, ale v opačném pořadí. Potřebujete-li tedy seznam čísel od největšího k nejmenšímu, místo od nejmenšího k největšímu, je tento příkaz nejjednodušší cestou. Posledním je příkaz rest. Ten vezme vše kromě první položky seznamu, tedy zbytek. Využití si nalezne hlavně při repeatech, kde můžeme postupně seznam zmenšovat.
length of seznam_kombinovany reverse of seznam_cisel rest of seznam_barev rest of second item of seznam_vseho
![](/old-idif/images/applescript_16_1.jpg)
Další možností, jak seznam upravit, je vyměnit jednu jeho položku za jinou. Ať už potřebujeme nějakou položku opravit, nebo nahradit x za aktuální data, je to velmi praktické a potřebné. Vše uděláme pomocí příkazu s formátem set Item in list to value. Item in list je zde jakákoli položka, přesně určená, tak jak jsme se naučili minule, a value je hodnota, za kterou chceme položku v seznamu nahradit.
set item 3 in seznam_vseho to {"red", "blue", "yellow", "green"}
Tímto způsobem můžete nahradit jakoukoli položku za cokoli. Ale co v případě, že chceme položku přidat?
![](/old-idif/images/applescript_16_2.jpg)
Pokud chceme přidat položku na začátek nebo na konec, použijeme příkaz beginning nebo end. Ty přidají námi zvolenou položku na pravé místo. Pokoušíme-li se takto vložit více položek najednou ve formě seznamu, nepovede se nám to, seznam bude vložen jako jedna položka a vznikne tedy seznam v seznamu.
set beginning of seznam_cisel to 3 set end of seznam_barev to "green" set beginning of seznam_barev to "black" set end of seznam_barev to {"purple", "orange", "gray"}
![](/old-idif/images/applescript_16_3.jpg)
Pokud potřebujete spojit dva seznamy, není nic jednoduššího. Použijte koncentrační znaménko &. Tím bez problémů spojíte dva i více seznamů v jeden. V případě čísel se dá & použít i místo beginning a end pro přidání jen jedné položky.
set seznam_cisel to 7 & 11 & (rest of seznam_cisel) & 29 set seznam_cisel to seznam_cisel & {31, 37, 39} set seznam_cisel to {1, 2, 3, 5} & seznam_cisel set seznam_uplne_vseho to seznam_cisel & seznam_barev & seznam_kombinovany & seznam_vseho
![](/old-idif/images/applescript_16_4.jpg)
![](/old-idif/images/applescript_16_5.jpg)
Pokud bychom ale měli první položku string a chtěli ji spojit se seznamem, výsledkem bude string. Naopak, budeme li přidávat string na konec seznamu, výsledkem bude seznam. Proto, kdykoli budete nuceni spojovat string se seznamem, převeďte si string nejprve na list.
set seznam_barev_1 to "orange" & seznam_barev set seznam_barev_2 to seznam_barev & "pink" set seznam_barev_3 to ("orange" as list) & seznam_barev
Nastal čas naučit se, jak se zbavíme nějaké položky uvnitř seznamu. Je-li to položka první, použijeme příkaz rest. Je-li to položka poslední, bude to už trochu náročnější. Musíme definovat znovu celý seznam, kromě poslední položky.
set seznam_cisel to rest of seznam_cisel set seznam_cisel to items 1 thru -2 of seznam_cisel
Problém ale nastává, nachází-li se položka někde uvnitř. AppleScript bohužel v tomto případě nenabízí žádné jednoduché řešení, proto si musíme pomoci trochu složitějším. Vezmeme začátek seznamu až k položce, kterou chceme vyhodit, a k tomu přidáme položky od nežádoucí položky až do konce. Matematicky řečeno pro vyhození položky n uděláme toto: (1až (n-1)) + ((n+1) až konec)
set seznam_cisel to (items 1 thru 6 of seznam_cisel) & (items 8 thru (count of seznam_cisel) of seznam_cisel)
Stejným způsobem položky také přidáváme. Nejprve seznam rozdělíme na dvě části, mezi ně vložíme novou položku a nakonec je spojíme.
set seznam_cisel to (items 1 thru 6 of seznam_cisel) & "seventeen" & (items 7 thru (count of seznam_cisel) of seznam_cisel)
![](/old-idif/images/applescript_16_6.jpg)
To je pro dnešek vše, příště se ještě podíváme na seznamy, například si ukážeme, jak porovnat dva seznamy a jak zjistit, zda seznam obsahuje právě tu položku, kterou hledáme.
Obsah seriálu (více o seriálu):
- AppleScript - úvod
- AppleScript - Script Editor
- AppleScript - Proměné
- AppleScript - Třídy
- AppleScript - matematika a počítání
- AppleScript - rozhodování
- AppleScript - práce s daty
- AppleScript - slovníky
- Apple Script - rozhodování
- Apple Script - opakování akcí
- Apple Script - opakování akcí (pokračování)
- Apple Script - Text
- Apple Script - elementy Stringu
- Apple Script - elementy Stringu II.
- AppleScript - seznamy
- AppleScript - seznamy II.