8.5 Direct lezen van een indexed bestand

Bij access mode is sequential kunnen we alleen in volgorde lezen. Als we direct willen lezen, dan moet de access mode random 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.

Bij sequentieel lezen vragen we de computer om 'het volgende' record. We moeten dan maar afwachten welk record we krijgen. Bij direct lezen vragen we de computer heel specifiek om een bepaald record. Hoe geven we aan welk record we willen hebben? Daarvoor gebruiken we het sleutelveld.

onthoud

Als we een record direct willen lezen, dan plaatsen de sleutel van het gewenste record in het sleutelveld en geven een leesopdracht. De computer kijkt naar de waarde in het sleutelveld en haalt het gewenste record op.


display "geef kenteken van gewenste record"
accept kenteken
read autobestand
    invalid key display "record niet aanwezig"
    not invalid key display autorecord
end-read
  

Voordat we een directe leesopdracht geven, vullen we het sleutelveld. In een directe leesopdracht ontbreekt het woordje next. Verder staat er geen at end (en eventueel not at end) in de leesopdracht. In plaats daarvan staat er invalid key (en eventueel not invalid key). Invalid key treedt op als er geen record met de gevraagde sleutel aanwezig is. We hebben dan een ongeldige sleutel opgegeven. Not invalid key is de situatie die optreedt als het gevraagde record inderdaad werd gevonden. Zoals gebruikelijk sluiten we de read-opdracht af met end-read.

omslag leerboek

Serie: leerboeken informatica

Titel: Tijd voor COBOL 1

Auteur: Andree Hollander

naamlogo