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

Verwijderde inhoud Toegevoegde inhoud
Sephiroth (overleg | bijdragen)
k Bot: Fixing redirects
Regel 163:
</pre>
}}
Dit is waar alles om draait, dit klein stukje code zorgt ervoor dat je via een woord of een naam een record zult kunnen plaatsen of vinden. We slaan eerst de naam van de wiki op in een hulpveld. Met dit hulpveld zullen we de hash-functie gebruiken. Eerst zorgen we ervoor dat alles in hoofdletters staat via de INSPECT(zie [[Programmeren in COBOL/Bewerkingen/Werken met tekst|Werken met tekst]]). Als dat gebeurt is moeten we alles omzetten in een cijfer dit doen we ook via INSPECT. Wikinaam is nogsteeds een alfanumeriek veld en hiermee kan je niet rekenen dit moeten we eerst in een numeriek veld overzetten. Het getal dat we nu hebben is 11 tekens lang goed voor 100 miljard mogelijke combinaties. Dit is natuurlijk teveel van het goede we hebben maar 9 records dat we willen opslaan. De oplossing is het getal delen door het aantal records dat we willen opslaan. De uitkomst ervan interesseert ons niet want dat is nogsteeds meer dan 10 miljard. Wat ons wel interesseert is de restwaarde dat zal een getal zijn van 0 tot 8. Dat zijn 9 verschillende combinaties. Maar aangezien COBOL niet zero-bases is in vergelijking met bijvoorbeeld Java moeten we er één bij optellen. Dit geeft ons dan een getal van 1 tot 9 en slaan we op in het veld dat dient als RELATIVE KEY in dit geval nummer. Vervolgens gaan we terug naar het deelprogramma zoeken.
 
Opmerking: Hoe je precies aan het eindgetal komt maakt eigenlijk niet uit zolang je maar aan een getal komt die gebaseerd is op de naam of het woord en die genoeg kans loopt om te verschillen met de getallen van andere namen of worden.
Informatie afkomstig van https://nl.wikibooks.org Wikibooks NL.
Wikibooks NL is onderdeel van de wikimediafoundation.