VyÜlo v t²denφku: COMPUTERWORLD
╚φslo:8/93
RoΦnφk:1993
Rubrika/kategorie: Co (ne)najdete ve slovnφku

zp∞t do archivu Φlßnk∙ | rejst°φk | p°edchozφ Φlßnek | nßsledujφcφ Φlßnek

Ji°φ Peterka

Wildcard

Je t∞₧kΘ °φci "to", kdy₧ p°esn∞ nevφm "co". Vlastn∞ to ani dost dob°e nejde - pojmenovat n∞co, o Φem nevφm, zda to v∙bec existuje, a pokud ano, kolik toho existuje. Jestli₧e tedy nedokß₧i stanovit p°esn² v²Φet objekt∙, kterΘ mßm na mysli, musφm je vymezit nep°φmo. Nap°φklad pomocφ urΦitΘ podmφnky: ty objekty, kterΘ mßm na mysli, jsou prßv∞ a pouze ty, kterΘ onu podmφnku spl≥ujφ.

SpφÜe technick²m problΘmem je pak vlastnφ formulace vymezujφcφ podmφnky. NejlΘpe je na tom asi p°irozen² jazyk, kter² neklade ₧ßdnß v∞tÜφ syntaktickß omezenφ na konstrukce typu "vÜechny takovΘ soubory, kterΘ majφ p°φponu TXT". Jinak je tomu ale p°i komunikaci s poΦφtaΦem, kdy je t°eba se vyjßd°it p°esn∞ a nedvojznaΦn∞. Navφc pouze v rßmci syntaktick²ch pravidel, kterΘ si operaΦnφ systΘm Φi konkrΘtnφ aplikaΦnφ program p°edepisuje. Jak potom °eÜit p°φpad, kdy se od u₧ivatele oΦekßvß zadßnφ jednoho konkrΘtnφho objektu, ale ve skuteΦnosti u₧ivatel pot°ebuje zadat spφÜe podmφnku, kterß vymezuje celou skupinu objekt∙? Jak nap°φklad postupovat u p°φkazu pro mazßnφ soubor∙, kter² jako sv∙j parametr oΦekßvß jmΘno konkrΘtnφho souboru, kter² mß smazat? Co mß d∞lat u₧ivatel, kter² mß k dispozici pouze tento p°φkaz a pot°ebuje smazat "vÜechny soubory, kterΘ ..."?

Obvykl²m °eÜenφm p°φpad∙ tohoto typu je pou₧itφ takov²ch jmen, kterß majφ stejn² formßlnφ tvar (syntax) jako skuteΦnß jmΘna konkrΘtnφch objekt∙, ale ve skuteΦnosti jsou "univerzßlnφmi" jmΘny, kterß mohou zastupovat r∙znß konkrΘtnφ jmΘna, Φi dokonce vφce r∙zn²ch konkrΘtnφch jmen. UrΦitou analogiφ by mohl b²t ₧olφk v karetnφ h°e - ten m∙₧eme pou₧φt mφsto karty tΘ hodnoty a barvy, kterß nßm prßv∞ chybφ. Pot°ebujeme-li vyjßd°it jmΘno n∞jakΘho objektu, m∙₧eme v roli "₧olφka" obvykle pou₧φt znak "?", kter² reprezentuje kterΘkoli pφsmeno Φi Φφslici (p°φpadn∞ i dalÜφ specißlnφ znak). Jde-li nap°φklad o jmΘna (a p°φpony) soubor∙ a napφÜeme-li DOPIS?.TXT, m∙₧e toto univerzßlnφ jmΘno zastupovat nap°φklad soubory SOUBOR1.TXT, SOUBORY.TXT, SOUBORX.TXT apod. Je zde vÜak jedna zßsadnφ odliÜnost oproti karetnφm hrßm: zatφmco ₧olφk nahrazuje v₧dy prßv∞ jednu kartu, znak "?" ve jmΘnu souboru zastupuje vÜechny mo₧nΘ znaky souΦasn∞! Pou₧ijeme-li nap°φklad jmΘno SOUBOR?.TXT jako parametr p°φkazu pro mazßnφ soubor∙ (tedy v MS DOSu: DEL SOUBOR?.TXT), °φkßme tφm operaΦnφmu systΘmu, ₧e mß smazat vÜechny soubory, jejich₧ jmΘna lze zφskat dosazenφm libovolnΘho znaku za znak "?".

Podobn² v²znam jako "?" mß obvykle i znak "*" (hv∞zdiΦka). Zatφmco ale otaznφk zastupuje v₧dy prßv∞ jeden znak, hv∞zdiΦka zastupuje libovoln² poΦet libovoln²ch znak∙! Tedy jeden, dva, t°i atd., nebo takΘ ₧ßdn² znak. NapφÜeme-li nap°φklad DEL *.TXT, °φkßme tφm, ₧e majφ b²t smazßny vÜechny soubory s p°φponou TXT (tj. s libovoln²m jmΘnem a s p°φponou TXT). P°φkaz D*.DOC pak zase po₧aduje smazßnφ vÜech soubor∙ s p°φponou DOC a se jmΘnem, kterΘ zaΦφnß pφsmenem D.

Znak∙m "?" a "*" s prßv∞ naznaΦen²m v²znamem se v angliΦtin∞ °φkß wildcards (p°φpadn∞: wildcard characters), co₧ v doslovnΘm p°ekladu znamenß "divokΘ karty". Jak jim ale °φkat v ΦeÜtin∞?

Mo₧nostφ je hned n∞kolik: "expanznφ znaky" naznaΦujφ, ₧e je mo₧nΘ je expandovat za jeden, resp. vφce konkrΘtnφch znak∙. Podobn∞ i termφn "zßstupnΘ znaky" dßvß tuÜit, ₧e jde o znaky, kterΘ ve skuteΦnosti zastupujφ jinΘ znaky Φi skupiny jin²ch znak∙. Stejn∞ tak je z°ejm∞ mo₧nΘ pou₧φt i oznaΦenφ "univerzßlnφ znaky". Nejv²sti₧n∞jÜφ je vÜak oznaΦovat cel² mechanismus jako tzv. "hv∞zdiΦkovou notaci" Φi "hv∞zdiΦkovou konvenci".


zp∞t do archivu Φlßnk∙ | rejst°φk | p°edchozφ Φlßnek | nßsledujφcφ Φlßnek
Tento Φlßnek m∙₧e b²t voln∞ Üφ°en, pokud se tak d∞je pro studijnφ ·Φely, na nev²d∞leΦnΘm zßklad∞ a se zachovßnφm tohoto dov∞tku. Podrobnosti hledejte zde, resp. na adrese http://archiv.czech.net/copyleft.htm