This site is designed to take advantage of CSS. If you are seeing this, CSS must not be available or enabled in your browser. Everything should still work, but won't be as pretty. :)



Vyhodnocení žolíků
Zvláště u hledaných textů s mnoha žolíky je důležité
vědět, v jakém pořadí a za jakých okolností se vyhodnocují
– expandují. Pod expanzí se v této souvislosti rozumí
rozšíření textové oblasti, kterou žolík obsahuje, aby dosáhl
shody mezi hledaným textem a hlavním textem. Při hledání
postupuje Eddie takto:
- Hledaný text je analyzován a rozebrán na části. Přitom
Eddie rozlišuje mezi pevnými textovými daty a žolíky. Hledaný
text se skládá z n pevných úseků, které jsou rozděleny n1
žolíky (n je větší nebo rovno 1; prázdný hledaný text
nepasuje).
- Eddie nyní postupuje znak po znaku dopředu a srovnává
hledaný text s hlavním textem na aktuální pozici. Dosažením
konce textu hledání končí. Souhlas hledaného a hlavního textu
vyvolá požadované akce (nahradit, označit) a vede při globálním
hledání a nahrazování ke hledání dalšího výskytu textu.
Srovnání mezi hledaným textem a aktuálním místem hlavního
textu vypadá takto:
- Eddie začne prvním pevným textem hledaného textu.
Liší–li se jeho obsah od hlavního textu, je srovnání
přerušeno. Texty nesouhlasí.
- Nejsou–li žádné žolíky, je již hledaný text
zpracován. Srovnání je ukončeno, hledaný a hlavní text jsou
identické.
- Existuje–li žolík, je nastaven na svou předpokládanou
velikost. To znamená: Při co nejmenším žolíku je to minimální
počet znaků od aktuálního místa textu. Žolík, který má
pokrýt co nejvíce znaků, je nafouknut co nejdál, přičemž horní
hranici tvoří maximální povolená délka.
Nyní se může stát, že některé okolnosti expanzi žolíku
zastaví. Kromě dosažení konce textu je to zásadně výskyt znaku,
který nebyl ve formuláři žolíku zvolen a proto se v něm nesmí
vyskytovat. Tím je nastavena hranice expanze žolíku.
Nemůže–li být díky tomu dodržena minimální požadovaná
délka, je srovnání skončeno, texty se neshodují.
Jakmile byl určen prvním žolíkem pokrytý úsek textu,
srovnává se od znaku za ním s druhým pevným textem hledaného
textu. Jestliže se oba texty neshodují, změní Eddie velikost
žolíku (podle nastavení dolů nebo nahoru) a porovnává znovu.
Tento postup je opakován tak dlouho, dokud se druhá část
hledaného textu buď neshoduje nebo se velikost žolíku kvůli
nastaveným parametrům již nedá změnit.
V případě shody se výše popsaný postup (určit počáteční
oblast žolíku – porovnat další úsek textu a eventuálně
změnit velikost žolíku) opakuje pro každý další pevný úsek
textu. Nastane–li při porovnávání neshoda, protože se
velikost žolíku již nedá změnit, vrátí se editor zpět k
poslednímu žolíku, jehož velikost lze ještě měnit a od tohoto
místa zkouší porovnávat znovu. Nelze–li již žádný
žolík expandovat, přeruší se celé srovnávání.
Když mezi dvěma úseky textu leží dva nebo více žolíků,
jsou expandovány vždy zleva doprava. To znamená, že Eddie nejprve
zkouší dostat shodu přizpůsobením prvního žolíku.
Nelze–li již první měnit, přichází na řadu druhý atd.
U žolíků s identickým názvem navíc Eddie testuje, zda mají
oba stejný obsah.
Copyright © invers Software (Home)
Poslední aktualizace 24. června 2015