De bestandsbesturing in de paragraaf file-control bestaat voor elk bestand uit de select-clausule (om het bestand een naam te geven) gevolgd door een of meer andere clausules. De assign-clausule legt een koppeling met de omgeving.
De file section in de data division bevat voor elk bestand een bestandsbeschrijving gevolgd door minstens één recordbeschrijving. De bestandsbeschrijving bestaat uit de letters FD en de naam van het bestand, gevolgd door nul, een of meer clausules. In dit hoofdstuk bespraken we de linage-clausule en de block-contains-clausule. Een recordbeschrijving bestaat uit een 01-veld, al dan niet ingedeeld in andere velden.
Het werken met bestanden geschiedt in samenwerking met het operating system van de computer. De open-opdracht maakt het recordgebied beschikbaar. De close-opdracht geeft het recordgebied vrij. Na een write-opdracht en na een rewrite-opdracht is de inhoud van het recordgebied ongedefinieerd.
Er zijn vier manieren om een bestand te openen; elk is
verbonden met specifieke bestand-opdrachten:
- output (nieuw bestand): opdracht write;
- extend: (bestaand bestand): opdracht write;
- input: (bestaand bestand): opdracht read;
- i-o: (bestaand bestand): opdrachten read en rewrite.
Na write en rewrite volgt de naam van een recordbeschrijving uit de file section.
Na read komt de naam van een bestand. Elke leesopdracht geeft het eerstvolgende record of een at-end-melding. De opdracht of opdrachten na at end geven aan wat er bij end-of-file moet gebeuren. Na not at end staan een of meer opdrachten die de computer moet uitvoeren indien wel een record kon worden gelezen.
Bij een afdrukbestand kunnen we de logische paginagrootte opgeven via de linage-clausule. De write-opdracht kunnen we uitbreiden met opdrachten voor regel- en pagina-opschuiving.
Met de block-contains-clausule kunnen we records samenvoegen tot blokken De grootte van een blok kunnen we aangeven in aantallen records of characters. Bij variabele blokgrootte geven we een minimum en een maximum aan.
Hoofdstuk 5 Sequentiële bestanden