Binární soubory
Obsahují-li soubory binární data, je potřeba toto explicitně vyjádřit. Docílíme toho použitím funkce "binmode" na příslušný ovladač souboru. Potom je možné pracovat s těmito soubory obvyklým způsobem.
binmode VSTUP;¨
binmode VYSTUP;
while ( <VSTUP> ) { print VYSTUP; }
S binárními soubory se většinou nepracuje po řádcích, ale po blocích. Pro práci se soubory po blocích slouží jiná sada funkcí. Pro čtení bloku bytů ze souboru použijeme funkci "sysread". Ta provede načtení dat a obsah uloží do zadané skalární proměnné. Jako návratová hodnota je vrácen počet skutečně přečtených znaků. K zápisu bloku znaků do souboru slouží funkce "syswrite". Ta zapíše do zadaného ovladače data ze zadané proměnné a vrátí počet znaků, které se skutečně podařilo zapsat. Aktuální pozici v souboru lze nastavit funkcí "sysseek". Tuto funkci použijeme i pro zjištění aktuální pozice v souboru.
$pozice = sysseek(OVLADAC, 0, 1)).
Objektový přístup
V Perlu je několik modulů, které podporují objektově orientovaný přístup k ovladačům. Práce s takovým typem ovladačů je velmi podobná standardnímu přístupu. Modul I O :: Handle poskytuje třídu reprezentující ovladače souborů. Objekt této třídy lze vytvořit několikerým způsobem. Tento objekt má k dispozici metody, jejichž jména jsou shodná se jmény vestavěných funkcí Perlu:
• close — uzavře ovladač,
• eo f — zjišťuje, zda se nacházíme na konci souboru,
• fileno — vrací deskriptor souboru,
• format_write — do ovladače zapíše naformátovaný řádek (podle formátu),
• getc — přečte jeden znak z ovladače,
• print — do ovladače zapíše zadané hodnoty,
• print f — do ovladače zapíše naformátovaný řetězec (podle šablony),
• read — čte data z ovladače,
• stat — zjišťuje informace o ovladači,
• sysread — čte data z ovladače,
• syswrite — zapisuje data do ovladače,
• truncate — zkracuje obsah souboru přidruženého k ovladači.
A to by bylo pro dnešek všechno. V dalším díle se podíváme na CGI programování. V případě jakýchkoliv dotazů mě kontaktujte na email: habrman@banan.cz.
Autor: Robert Habrman