Formßt


Dosud jsme pro zapis dat na v²stup pou₧φvali p°φkaz print. Pot°ebujeme-li vÜak v²stupnφ data uspo°ßdat do sloupc∙, uvΘst hlaviΦkou nebo prolo₧it pevn²m textem pou₧ijeme tzv. formßtovan² v²stup. Vzhled v²stupu je dßn p°edem definovan²m formßtem. Definici formßtu je mo₧nΘ uvΘst kdekoli v programu. Tento druh v²stupu provßdφ p°φkaz write.


Definice formßtu

Vzhled v²stupu se specifikuje definicφ formßtu. Definice formßtu zaΦφnß slovem format a konΦφ °ßdkou obsahujφcφ pouze teΦku.

P°φklad definice formßtu:

format MUJFORMAT =       # slovo format, jmΘno formatu a znak =
====== radka s pevnym textem ======   
Moje jmeno je @<<<<<<<<<< a prijmeni @<<<<<<<<<<<<<<   # vzhled °ßdky s promennou
$jmeno, $prijmeni        # prom∞nnΘ, jejich₧ obsah se tiskne, odd∞lenΘ Φßrkou
.                        # ukonΦenφ definice formßtu - znak teΦka 
Sekvence znak∙ @<<<<<<<<<< definuje vzor pro prom∞nnou $jmeno. Jde o vlevo zarovnan² text, kter² mß 11 znak∙.


Pou₧itφ formßtu

Definovan² formßt se pou₧ije p°i tisku p°φkazem write. Parametrem p°φkazu write je logickΘ jmΘno v²stupnφho souboru, kterΘ je stejnΘ se jmΘnem pou₧itΘho formßtu (implicitn∞).

P°φklad:

open (MUJFORMAT,">seznam.txt") || die "nelze vytvorit soubor seznam.txt";
$jmeno = Jan;
$prijmeni = Novak;
write MUJFORMAT;
V²sledek tisku p°i pou₧itφ v²Üe definovanΘho formßtu:

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

VÜimn∞te si, ₧e je pot°eba p°ed tiskem otev°φt v²stupnφ soubor, jeho₧ logickΘ jmΘno je stejnΘ jako jmΘno formßtu a naplnit prom∞nnΘ pou₧itΘ v definici formßtu. Ka₧d² vzor ve formßtu je p°i povßd∞nφ p°φkazu write nahrazen obsahem odpovφdajφcφ prom∞nnΘ.

P°i zßpisu na standardnφ v²stup pojmenujte formßt STDOUT.

Znaky pou₧itΘ ve vzoru

Vzory prom∞nn²ch zaΦφnajφ znakem @. Znaky za znakem @ urΦujφ druh dat. PoΦet znak∙ vΦetn∞ znaku @ urΦuje dΘlku dat.

Formßt V²znam
@<<< vlevo zarovnanΘ pole o dΘlce 4, zprava se doplnφ mezery, delÜφ °et∞zec se u°φzne
@>>> vpravo zarovnanΘ pole o dΘlce 4, zleva se doplnφ mezery
@|||| centrovanΘ pole o dΘlce 5
@###.## Φφselnß polo₧ka ,kterß mß 4 mφsta p°ed teΦkou dv∞ za teΦkou
@*vφce°ßdkovΘ pole, jsou interpretovßny znaky konec °ßdku ulo₧enΘ v °et∞zci v prom∞nnΘ
~ (tilda)°ßdek obsahujφcφ tento znak se tiskne pouze pokud nenφ prßzdn²

Siln∞jÜφ prost°edky pro formßtovßnφ perl neposkytuje. Chcete-li pou₧φt nap°. plovoucφ znamΘnko musφte si na to napsat vlastnφ proceduru.

Formßt zaΦßtku strßnky

Implicitnφ dΘlka strßnky p°i tisku na tiskßrnu je 60 °ßdek. Perl poΦφtß °ßdky a umφ na zaΦßtku ka₧dΘ strßnky vytisknout hlaviΦku. Tato hlaviΦka je definovßny vlastnφm formßtem, kter² mß jmeno odvozenΘ od pou₧itΘho formßtu pro tisk. JmΘno formßtu hlaviΦky TOP_jmΘnoformßtu.

P°φklad:

format TOP_MUJFORMAT
Seznam                              strana@<
                                          $%
Prom∞nnß $% obsahuje Φφslo strßnky.


DalÜφ kapitola | P°edchozφ kapitola | Obsah

PEGASNETPEGASNET

PEGASNETPEGASNET

PEGASNETPEGASNET

PEGASNETPEGASNET