Programmeren in COBOL/Bestandsorganisatie/Sequentiële bestanden: verschil tussen versies

Verwijderde inhoud Toegevoegde inhoud
Sephiroth (overleg | bijdragen)
kGeen bewerkingssamenvatting
Sephiroth (overleg | bijdragen)
Geen bewerkingssamenvatting
Regel 77:
</pre>
}}
Als er gewerkt wordt met bestanden wordt dit stukje toegevoegd. Het bestand ''invoer.dat'' wordt gekoppeld met ''invoer'' wat belangrijk is in de ''data division''. ''Line sequential" geeft aan dat het een sequentieel bestand is.
{{code
|Taal = COBOL
Regel 134:
}}
Nadat je gedaan hebt met het lezen van het bestand moet je het bestand terug sluiten met ''close''.
 
==Sequentiële bestanden schrijven==
===Het bestand schrijven===
Een bestand schrijven volgt natuurlijk het omgekeerde principe van een bestand lezen. Je verwerkt eerst de gegevens je plaatst die in het groepsveld van de uitvoer en vervolgens schrijf je het bestand. We zullen in dit voorbeeld een bestand openen en daarna lezen wat er in zit om dat te verwerken en uit te schrijven. Je moet natuurlijk niet een bestand lezen je kan gewoon de gegevens inlezen via een ''accept'' maar dat neemt tijd in beslag. We gebruiken in dit voorbeeld hetzelfde sequentieel bestand om te lezen als in het vorige.
{{code
|Taal = COBOL
|Titel = Sequentieel bestand schrijven
|Code =
<pre>
IDENTIFICATION DIVISION.
PROGRAM-ID. seqbestanlezen.
 
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT invoer ASSIGN TO "invoer.dat"
LINE SEQUENTIAL.
 
SELECT uitvoer ASSIGN to "uitvoer.dat"
LINE SEQUENTIAL.
 
DATA DIVISION.
FILE SECTION.
FD invoer.
01 persoon.
02 achternaam pic x(20).
02 voornaam pic x(15).
02 pic x(39).
02 geslacht pic x.
 
 
FD uitvoer.
01 regel.
02 uitvn pic x(15).
02 pic x.
02 uitan pic x(20).
02 pic x.
02 uitge pic x.
 
WORKING-STORAGE SECTION.
77 pic x value "n".
88 eof value "j".
 
PROCEDURE DIVISION.
HOOFD.
OPEN INPUT invoer
OPEN OUTPUT uitvoer
READ invoer AT END SET eof TO TRUE END-READ
PERFORM lees UNTIL eof
 
CLOSE invoer
CLOSE uitvoer
STOP RUN.
 
LEES.
MOVE achternaam TO uitan
MOVE voornaam TO uitvn
MOVE geslacht TO uitge
WRITE regel END-WRITE
DISPLAY voornaam " " achternaam " " geslacht
READ invoer AT END SET eof TO TRUE END-READ
.
</pre>
}}
Een uitvoer bestand wordt op dezelfde manier gekoppeld met een groepsveld en ook op dezelfde manier gesloten. Het bestand openen gebeurd op een andere manier "open output uitvoer".
{{code
|Taal = COBOL
|Titel = Sequentieel bestand schrijven
|Code =
<pre>
MOVE achternaam TO uitan
MOVE voornaam TO uitvn
MOVE geslacht TO uitge
WRITE regel END-WRITE
</pre>
}}
Het enige waar er moet opgelet worden is het overzetten van de variabelen van het éne groepsveld naar het ander en ook de ''write'' commando gevolgd door de groepsveld van de uitvoer en de ''end-write''.
===Het resultaat===
{{code
|Taal = COBOL
|Titel = Sequentieel bestand schrijven
|Code =
<pre>
Jan Peeters M
Peter Jansen M
</pre>
}}
 
[[Categorie:Programmeren in COBOL|Sequentiële bestanden]]
Informatie afkomstig van https://nl.wikibooks.org Wikibooks NL.
Wikibooks NL is onderdeel van de wikimediafoundation.