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

Verwijderde inhoud Toegevoegde inhoud
Sephiroth (overleg | bijdragen)
Sephiroth (overleg | bijdragen)
kGeen bewerkingssamenvatting
Regel 303:
}}
''Zoeken'' is het enige waar je misschien nog moet opletten. Eers voor je natuurlijk de ''hash''-functie uit en die geeft dan een sleutel. Vervolgens start je met een lus die maximaal het aantal records dat er in het bestand zit zal draaien. Je voert een READ uit met de sleutel die je hebt van de ''hash''-functie. Nu moeten we eerst controleren of het wel het juist record is. Dit doen we door de naam da we hebben gekregen van de gebruiker te verglijken met dat van de record. Als het juist is toont dit programma gewoon de omschrijving van de wiki. Als het fout is moet ''botsing'' worden uitgevoerd tot het record is gevonden.
==Record herschrijven==
Een record herschrijven is niet moeilijk en je kunt de code van het vorige stukje gebruiken en gewoon een beetje aanpassen.
{{code
|Taal= COBOL
|Titel=hoofd.
|Code=
<pre>
IDENTIFICATION DIVISION.
PROGRAM-ID. Wiki.
 
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
 
SELECT wikirel ASSIGN TO "wiki.uit"
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
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
DISPLAY "Het originele inhoud: " relomschr
DISPLAY "Geef de nieuwe inhoud: "
ACCEPT relomschr NO BEEP
REWRITE relwiki END-REWRITE
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 zoveel verschil dus. Er zijn slechts twee zaken die echt anders zijn. Ten eerste hoe je het bestand moeten openen. Net zoals een gewoon relatief bestand moet je dit openen met I-O(INPUT-OUTPUT). Vervolgens doe je nadat je het record hebt gevonden die je wilt aanpassen een REWRITE net zoals een gewoon relatief bestand.
[[Categorie:Programmeren in COBOL|Relatieve bestanden met hash]]
Informatie afkomstig van https://nl.wikibooks.org Wikibooks NL.
Wikibooks NL is onderdeel van de wikimediafoundation.