Programmeren in COBOL/Relatieve bestanden met hash: verschil tussen versies

Verwijderde inhoud Toegevoegde inhoud
Sephiroth (overleg | bijdragen)
kGeen bewerkingssamenvatting
Sephiroth (overleg | bijdragen)
k +record verwijderen
Regel 33:
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT wikiseq ASSIGN TO "wikiwikiseq.intxt"
ORGANIZATION LINE SEQUENTIAL
FILE STATUS seqstatus.
 
SELECT wikirel ASSIGN TO "wikiwikirel.uittxt"
ORGANIZATION RELATIVE
ACCESS RANDOM
Regel 120:
|Code=
<pre>
SELECT wikiseq ASSIGN TO "wikiwikiseq.intxt"
ORGANIZATION LINE SEQUENTIAL
FILE STATUS seqstatus.
 
SELECT wikirel ASSIGN TO "wikiwikirel.uittxt"
ORGANIZATION RELATIVE
ACCESS RANDOM
Regel 214:
FILE-CONTROL.
 
SELECT wikirel ASSIGN TO "wikiwikirel.uittxt"
ORGANIZATION RELATIVE
ACCESS RANDOM
Regel 289:
{{code
|Taal= COBOL
|Titel=hoofdzoeken.
|Code=
<pre>
Regel 311:
{{code
|Taal= COBOL
|Titel=hoofdRecord herschrijven.
|Code=
<pre>
Regel 321:
FILE-CONTROL.
 
SELECT wikirel ASSIGN TO "wikiwikirel.uittxt"
ORGANIZATION RELATIVE
ACCESS RANDOM
Regel 392:
</pre>
Als je dan opnieuw wikipedia opzoekt zal je zien dat er "VRIJ ENCYCLOPEDIE" staat.
==Record verwijderen==
Dit volgende programma is gebaseerd op het vorige maar in de plaats van een record te herschrijven wordt die gedelete.
{{code
|Taal= COBOL
|Titel=Record verwijderen.
|Code=
<pre>
IDENTIFICATION DIVISION.
PROGRAM-ID. RecordVerwijderen.
 
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT wikirel ASSIGN TO "wikirel.txt"
ORGANIZATION RELATIVE
ACCESS RANDOM
RELATIVE KEY nummer.
 
DATA DIVISION.
FILE SECTION.
FD wikirel.
01 relwiki.
02 relnaam PIC X(11).
02 relomschr PIC X(50).
 
WORKING-STORAGE SECTION.
01 nummer PIC 99.
01 wikinaam PIC X(11).
01 hulp PIC x(11).
01 wikinummer PIC 9(11).
01 kleineletters PIC X(27) VALUE 'abcdefghijklmnopqrstuvwxyz '.
01 hoofdletters PIC X(27) VALUE 'ABCDEFGHIJKLMNOPQRSTUVWXYZ '.
01 cijfers PIC X(27) VALUE '012345678901234567890123456'.
01 teller PIC 99.
 
PROCEDURE DIVISION.
HOOFD.
OPEN I-O wikirel
DISPLAY "Geef de naam van de wiki die je wilt verwijderen:"
ACCEPT wikinaam NO BEEP
PERFORM zoeken
CLOSE wikirel
STOP RUN.
 
ZOEKEN.
PERFORM hash
PERFORM varying teller FROM 1 BY 1 UNTIL teller > 9
READ wikirel END-READ
IF relnaam = wikinaam
THEN
DELETE wikirel
DISPLAY "Record verwijderd"
MOVE 10 TO teller
ELSE
PERFORM botsing
END-IF
END-PERFORM.
 
HASH.
MOVE wikinaam TO hulp
INSPECT hulp CONVERTING kleineletters to hoofdletters
INSPECT hulp CONVERTING hoofdletters TO cijfers
MOVE hulp TO wikinummer
DIVIDE wikinummer BY 9 GIVING wikinummer REMAINDER nummer
ADD 1 TO nummer.
 
BOTSING.
ADD 1 TO nummer.
IF nummer = 10
MOVE 1 TO nummer
END-IF.
</pre>
}}
Niet zo veel verschil met het vorige. ''DELETE'' in de plaats van ''REWRITE'' en natuurlijk altijd openen met ''I-O''(''INPUT-OUTPUT''). Als je een record wilt lezen die je hebt gedelete geeft hij een foutmelding.
[[Categorie:Programmeren in COBOL|Relatieve bestanden met hash]]
Informatie afkomstig van https://nl.wikibooks.org Wikibooks NL.
Wikibooks NL is onderdeel van de wikimediafoundation.