8.9 Verwijderen van een record

Bij een indexed bestand is het mogelijk om een record uit het bestand te verwijderen. Als je daarna hetzelfde record gaat lezen, dan krijg je de melding invalid key.

onthoud

De delete-opdracht verwijdert een bestaand record uit een bestand. Om de delete-opdracht te kunnen gebruiken moet het bestand geopend zijn voor i-o.

Het gebruik van de delete-opdracht is verschillend bij access mode is sequential enerzijds en bij access mode is random en access mode is dynamic anderzijds.

Bij access sequential moet aan de delete-opdracht een geslaagde read-opdracht vooraf zijn gegaan. Door de delete-opdracht verwijdert de computer het laatstgelezen record uit het bestand. Invalid key en not invalid key mogen niet worden vermeld bij access mode sequential.

Bij access random en access dynamic kijkt de computer naar de inhoud van het sleutelveld. De waarde van het sleutelveld bepaalt welk record wordt verwijderd. Het is niet verplicht om eerst een record te lezen. Het vermelden van invalid key en end-delete is verplicht. Invalid key treedt op als het sleutelveld een waarde bevat die niet in een record van het bestand voorkomt. Een record dat er niet is, kan de computer niet verwijderen.

Hier is een voorbeeld van het verwijderen van een record:

display "geef het kenteken van het te verwijderen record"
accept kenteken
delete autobestand record
invalid key
    display "kenteken niet aanwezig"
end-delete
  

Let er op dat na het woord delete de bestandsnaam komt. Het woord record dat weer daarna staat, is facultatief. Het is dus toegestaan om te schrijven: delete autobestand. Het lijkt dan net of meteen het hele bestand eraan gaat. Dat is niet zo, want delete slaat altijd slechts op één record. Het is aan te raden om het woordje record achter de bestandsnaam te schrijven.

omslag leerboek

Serie: leerboeken informatica

Titel: Tijd voor COBOL 1

Auteur: Andree Hollander

naamlogo