Format


Dosud jsme pro zapis dat na vystup pouzivali prikaz print. Potrebujeme-li vsak vystupni data usporadat do sloupcu, uvest hlavickou nebo prolozit pevnym textem pouzijeme tzv. formatovany vystup. Vzhled vystupu je dan predem definovanym formatem. Definici formatu je mozne uvest kdekoli v programu. Tento druh vystupu provadi prikaz write.


Definice formatu

Vzhled vystupu se specifikuje definici formatu. Definice formatu zacina slovem format a konci radkou obsahujici pouze tecku.

Priklad definice formatu:

format MUJFORMAT =       # slovo format, jmeno formatu a znak =
====== radka s pevnym textem ======   
Moje jmeno je @<<<<<<<<<< a prijmeni @<<<<<<<<<<<<<<   # vzhled radky s promennou
$jmeno, $prijmeni        # promenne, jejichz obsah se tiskne, oddelene carkou
.                        # ukonceni definice formatu - znak tecka 
Sekvence znaku @<<<<<<<<<< definuje vzor pro promennou $jmeno. Jde o vlevo zarovnany text, ktery ma 11 znaku.


Pouziti formatu

Definovany format se pouzije pri tisku prikazem write. Parametrem prikazu write je logicke jmeno vystupniho souboru, ktere je stejne se jmenem pouziteho formatu (implicitne).

Priklad:

open (MUJFORMAT,">seznam.txt") || die "nelze vytvorit soubor seznam.txt";
$jmeno = Jan;
$prijmeni = Novak;
write MUJFORMAT;
Vysledek tisku pri pouziti vyse definovaneho formatu:

====== radka s pevnym textem ======
Moje jmeno je Jan         a prijmeni Novak

Vsimnete si, ze je potreba pred tiskem otevrit vystupni soubor, jehoz logicke jmeno je stejne jako jmeno formatu a naplnit promenne pouzite v definici formatu. Kazdy vzor ve formatu je pri povadeni prikazu write nahrazen obsahem odpovidajici promenne.

Pri zapisu na standardni vystup pojmenujte format STDOUT.

Znaky pouzite ve vzoru

Vzory promennych zacinaji znakem @. Znaky za znakem @ urcuji druh dat. Pocet znaku vcetne znaku @ urcuje delku dat.

Format Vyznam
@<<< vlevo zarovnane pole o delce 4, zprava se doplni mezery, delsi retezec se urizne
@>>> vpravo zarovnane pole o delce 4, zleva se doplni mezery
@|||| centrovane pole o delce 5
@###.## ciselna polozka ,ktera ma 4 mista pred teckou dve za teckou
@*viceradkove pole, jsou interpretovany znaky konec radku ulozene v retezci v promenne
~ (tilda)radek obsahujici tento znak se tiskne pouze pokud neni prazdny

Silnejsi prostredky pro formatovani perl neposkytuje. Chcete-li pouzit napr. plovouci znamenko musite si na to napsat vlastni proceduru.

Format zacatku stranky

Implicitni delka stranky pri tisku na tiskarnu je 60 radek. Perl pocita radky a umi na zacatku kazde stranky vytisknout hlavicku. Tato hlavicka je definovany vlastnim formatem, ktery ma jmeno odvozene od pouziteho formatu pro tisk. Jmeno formatu hlavicky TOP_jmenoformatu.

Priklad:

format TOP_MUJFORMAT
Seznam                              strana@<
                                          $%
Promenna $% obsahuje cislo stranky.


Dalsi kapitola | Predchozi kapitola | Obsah