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:
Software
Apple Script - elementy Stringu II.
26. října 2006, 00.00 | Dnešním dílem uzavřeme stringy. Ještě se krátce podíváme na práci s nimi a jejich jednotlivými elementy a pak si povíme něco o porovnávání pomocí bloků considering a ignoring, které se nám budou při práci s textem občas hodit. Pak už nám nebude bránit nic, abychom se podívali na seznamy.
Minule jsme si ukázali, jak můžeme vybírat jednotlivé části stringů. Museli jsme ale znát jejich pořadí, dnes se naopak naučíme, jak najít určitý string uvnitř jiného. To je velmi praktické, můžeme třeba hledat v názvu souboru určitou koncovku, podle které chceme soubory třídit, nebo potřebujeme vědět, kde se nám v řetězu objevuje určitá fráze. Můžeme určit, zda má string námi hledanou částí začínat, končit, nebo zda může být kdekoli uvnitř. Používáme k tomu tyto příkazy: begins with nebo starts with, hledáme-li něco na začátku, ends with je-li to na konci a contains nebo is in má-li to být někde uvnitř. Vždy používáme formát string obsahuje string, např tedy "AppleScript" begins with "Apple". Výsledkem takovéhoto příkazu je boolean, neboli true/false. Můžeme také samozřejmě tvrzení otočit a zjišťovat zda něco naopak ve stringu není. K tomu opět použijeme nám už známé slovo not, případně does not, některé příkazy tedy vypadají takto: does not contains, is not in, does not begins... Zbývá nám ještě příkaz offset, který nám jako svůj výsledek vrátí integer, reprezentující umístění stringu ve druhém. Pokud string neobsahuje ten námi požadovaný, výsledkem je nula. Na následujícím příkladu uvidíte, jak se dá porovnávání použít.
Při porovnávání si ale brzy položíte otázku, co je pro AppleScript stejné a co ne. Zjistíte, že například nerozlišuje velká a malá písmena a tedy tvrzení "ABECEDA" = "abeceda" bude mít výsledek true. Co ale dělat, potřebujeme-li písmena rozlišit? K tomu slouží dvojice příkazů considering a ignoring následované patřičným parametrem, který buď berou v potaz, nebo naopak ignorují. Jsou to podobně jako try, if a repeat bloky ohraničující část skriptu, pro kterou vytvoří speciální, námi nadefinované, prostředí pro porovnávání. Základní formát je:
Ignoring (nebo considering) + parametr ... ... ... end ignoring
Důležité je také vědět, jaké parametry jsou defaultně zapnuté a jaké ne. Podle toho pak používáme jeden z dvojice considering a ignoring. Který je aktivní a který ne, si povíme při představování parametrů samotných. A jaké to tedy jsou? První je case, tedy verzálky a mínusky. Tento parametr je defaultně ignorován, tedy potřebujeme-li je rozlišit, musíme použít příkaz considering. Další je diacriticals, ten rozlišuje akcentovaná písmena od neakcentovaných. Defaultně je porovnáván, tedy aby byla "čeština" rovna "cestine" musíme použít blok ignoring. Expansion porovnává ligatury, tedy zdvojená písmena jako je Æ nebo Œ. Standardně je porovnáván a zdvojené znaky nebudou totožné s AE a OE. Dalším parametrem jsou hyphens neboli pomlčky. Používají se v případě složených slov s pomlčkou (např.: černo-modrá není černomodrá). AppleScript je porovnává. Punctuation, s tímto parametrem budou ignorována všechna interpunkční znaménka, ať jsou to tečky, vykřičníky, čárky nebo uvozovky. Defaultně jsou porovnávány. Poslední je white space porovnávající mezery. Apple Script tedy není AppleScript dokud nezměníte předdefinované nastavení a mezeru nezačnete ignorovat.
V případě potřeby můžeme použít více parametrů. Jednoduše použijeme slovíčko and, kterým je spojíme. V případě více parametrů než jsou dva, nám Script Editor všechny rozdělí čárkami. Stále to ale ještě není všechno, parametry můžeme mezi sebou ještě kombinovat. Nejprve nadefinujeme considering + všechny parametry, pak napíšeme slovo but a ignoring + parametry.
Tím docílíme poměrně přesných porovnávání a můžeme tak s textem nejrůzněji pracovat. Nebude nám už tedy vadit text bez akcentů, nebo psaný jen verzálkami. Stojí za to naučit se jak s jakým parametrem AppleScript zachází a my nemuseli zbytečně definovat nějaké parametry, které už jsou vlastně nadefinovány. Tímto jsme probrali Stringy a všechno důležité kolem nich a příště nás čekají seznamy. Práce s nimi je ale velmi podobná, proto se nemáme čeho bát.
Jako bonus si ještě dnes ukážeme příkaz random number. Ten použijeme chceme-li náhodné číslo. Pokud ale nespecifikujeme jeho rozsah, dostaneme real mezi nulou a jedničkou, proto musíme dodat ještě from X to Y. Čísla můžou být kladná i záporná. Jsou-li čísla integery, je integer i výsledné číslo, je-li jedno číslo z rozsahu real, výsledkem je také real. A to je pro dnešek už doopravdy vše.
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.