Programmeren in COBOL/Relatieve bestanden met hash: verschil tussen versies
Verwijderde inhoud Toegevoegde inhoud
kGeen bewerkingssamenvatting |
|||
Regel 212:
SELECT wikirel ASSIGN TO "wiki.uit"
ORGANIZATION RELATIVE
ACCESS
RELATIVE KEY nummer.
Regel 223:
WORKING-STORAGE SECTION.
01
01 wikinaam PIC X(11).
01 hulp PIC x(11).
Regel 249 ⟶ 246:
IF relnaam = wikinaam
THEN
MOVE 10 TO teller
ELSE
Regel 257 ⟶ 254:
HASH.
MOVE wikinaam
INSPECT hulp CONVERTING kleineletters to hoofdletters
INSPECT hulp CONVERTING hoofdletters TO cijfers
Regel 264 ⟶ 261:
ADD 1 TO nummer.
ADD 1 TO nummer.
IF nummer = 10
Regel 271 ⟶ 268:
</pre>
}}
De ''hash''-functie en ''botsing''zijn in dit programma nogsteeds hetzelfde, dus het enige waar je moet voor opletten is de ''hoofd'' en ''zoeken''.
{{code
|Taal= COBOL
|Titel=hoofd.
|Code=
<pre>
HOOFD.
OPEN INPUT wikirel
ACCEPT wikinaam NO BEEP
PERFORM zoeken
CLOSE wikirel
STOP RUN.
</pre>
}}
De ''hoofd'' is niet echt moeilijk. Je moet het relatief gewoon open als input en vervolgens lees je de naam van de wiki in waarvan je de omschrijving wilt hebben. Vervolgens voer je ''zoeken'' uit.
{{code
|Taal= COBOL
|Titel=hoofd.
|Code=
<pre>
ZOEKEN.
PERFORM hash
PERFORM varying teller FROM 1 BY 1 UNTIL teller > 9
READ wikirel END-READ
IF relnaam = wikinaam
THEN
DISPLAY relomschr
MOVE 10 TO teller
ELSE
PERFORM botsing
END-IF
END-PERFORM.
</pre>
}}
''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.
[[Categorie:Programmeren in COBOL|Relatieve bestanden met hash]]
|