8.6 Sequentieel lezen van een indexed bestand

Records in een indexed bestand zijn direct benaderbaar. Dat is prettig. Maar het is niet bij elke toepassing nodig. Als alle records of verreweg de meeste records nodig zijn, dan is er geen reden om direct te lezen. Bij een indexed bestand hebben we de keus. We kunnen direct lezen (zie de vorige paragraaf), maar we kunnen ook sequentieel lezen.

Bij access mode is random kunnen we alleen direct lezen. Als we sequentieel willen lezen, dan moet de access mode sequential zijn of dynamic. Om records te kunnen lezen moet het bestand geopend zijn voor input of voor i-o. We kiezen open voor input als we alleen willen lézen. We kiezen voor i-o als we ook nog records willen schrijven of records willen terugschrijven.

Een voorbeeld van een sequentiële leesopdracht is:

read autobestand next record
  at end 
    set einde-bestand to true
  not at end
    display kenteken
    display rest
    display space
end-read
  

Na het openen van het bestand geeft de eerste read-opdracht het eerste record van het bestand. Elke volgende sequentiële leesopdracht geeft het volgende record. Omdat we een keer het einde van het bestand bereiken is de at-end-optie verplicht. De not-at-end-optie is niet verplicht, maar handig als iets alleen moet gebeuren wanneer er geen at-end-situatie optreedt.

Bij access mode dynamic geeft het woordje next aan dat het gaat om een sequentiële leesopdracht. Bij access mode sequential is sequentieel lezen de enige mogelijkheid. Daarom mag bij access mode sequential het woordje next wegblijven. Dus alleen bij access mode sequential. Maar het is duidelijker om dat woordje next altijd te schrijven als we om een volgend record vragen.

omslag leerboek

Serie: leerboeken informatica

Titel: Tijd voor COBOL 1

Auteur: Andree Hollander

naamlogo