next up previous contents
Next: Několikanásobný průchod celým souborem Up: Soubory Previous: Zbytečné zavírání a otvírání   Obsah

Není ošetřeno otevírání souborů

Při pokusu o otevření souboru pomocí procedur reset nebo rewrite (plus některé další) může obecně dojít k chybám. Soubor nemusí vůbec existovat, případně nemá nastavena přístupová práva pro čtení. Tyto chybové stavy jde v Pascalu detekovat pomocí funkce IOResult. Tato funkce vrací číselný kód chyby nebo nulu, pokud operace proběhla v pořádku. Je potřeba si dávat pozor při jejím použití, protože tato funkce považuje za IO operaci i své vlastní zavolání. Proto vrací chybový kód pouze jednou. Při dalším zavolání už vrací většinou nulu.

Kompilátor Borland Pascalu umožňuje i ve zdrojovém textu používat různé přepínače, které slouží pro nastavení kompilace. Protože je většinou v tomto prostředí implicitně zapnuto hlídání vstup-výstupních operací, je nutné toto nastavení ve zdrojovém kódu obejít. Jinak by totiž kompilátor vygeneroval kód, který sám hlídá veškeré IO operace. Na případnou chybu by pak program reagoval hláškou "Runtime error NNN". To je samozřejmě pro uživatele nepřípustné.

Kód pro otevření souboru by měl vypadat nějak takto:

assign(soubor, cesta);
{$I-}
reset(soubor);
{$I+}
if IOResult <> 0 then
  writeln('Doslo k~chybe pri otvirani souboru!');



David Martinek 2002-10-01