8. PŘÍKAZY PRO PRÁCI SE SOUBORY Zpracování souborů dat se v COBOLu provádí pomocí příkazů. V každém z těchto příkazů se uvádí buďto jméno některého souboru anebo logická věta (01) některého souboru, deklarovaného v paragrafu FILE-CONTROL klauzulí SELECT popsaného ve FILE SECTION klauzulí FD a za ní následujícími popisy logických vět (01). Při zpracování se respektují požadavky uvedené v paragrafu I-O-CONTROL a při vzniku výjimečných stavů se vyvolávají popsané deklarativní sekce. Zpracování souboru musí být zahájeno tzv. "otevřením souboru" příkazem OPEN. Zpracování jednotlivých logických vět souboru se pak provádí pomocí příkazů READ, WRITE, REWRITE, DELETE a START.Zpracování souboru se ukončuje tzv. "uzavřením souboru" příkazem CLOSE. (výjimku z tohoto schématu tvoří soubory uvedené v klauzulích USING a GIVING v příkazech SORT a MERGE, kteréžto příkazy v sobě implicitně zahrnují příkazy OPEN, READ resp. WRITE a CLOSE pro soubory v nich uvedené.) U příkazů READ, WRITE, REWRITE, DELETE a START je přípustná klauzule AT END resp. INVALID KEY, která se uplatní při výskytu výjimečného stavu "konec souboru" resp. stavu "neplatný klíč", kdy logickou větu nelze správně přečíst, zapsat, opravit nebo vyhledat (podrobná vymezení jsou uvedena v následujících odstavcích). Platí: a) Má-li příkaz uvedenu klauzuli AT END resp. INVALID KEY, pak při "konci souboru" resp. při "neplatném klíči" se provádějí příkazy uvedené za AT END resp. za INVALID KEY. Pokud však ke "konci souboru" resp. k "neplatnému klíči" nedošlo, příkazy uvedené za AT END resp. INVALID KEY se přeskakují a přechází se na první příkaz za tečkou. b) Nemá-li příkaz uvedenu klauzuli AT END resp. INVALID KEY, vyvolá se při "konci souboru" resp. při "neplatném klíči" deklarativní sekce pro ošetření chyb vstupu/výstupu (viz 5.5.2.). Pokud by ani takováto deklarativní sekce nebyla uvedena, pokračoval by výpočet normálně dál prováděním následujícího příkazu, aniž by uživatel dostal nějakou informaci o "konci souboru" resp. "neplatném klíči" - k této situaci by však nemělo dojít. Výjimka nastává u příkazu WRITE pro výstupní sekvenční soubor, kdy při neuvedení klauzule INVALID KEY ani deklarativní sekce způsobí zaplnění diskového prostoru chybu a ukončení výpočtu. c) V 5.5.2. i v následujících odstavcích jsou výjimečné stavy rozděleny na výjimečné stavy přednostně vyvolávající deklarativní sekce a na výjimečné stavy způsobující přednostně uplatnění klauzule AT END resp. INVALID KEY. Je-li pro soubor popsána deklarativní sekce pro ošetření chyb vstupu/výstupu, uplatní se klauzule AT END resp. INVALID KEY pouze při těch výjimečných stavech, které způsobují uplatnění této klauzule přednostně. Není-li však pro soubor popsána deklarativní sekce pro ošetření chyb vstupu/výstupu, uplatní se klauzule INVALID KEY navíc i při těch výjimečných stavech, které by přednostně způsobovaly vyvolání deklarativní sekce.