Marc's Place

E$DECODE - Controleren van bankrekeningnrs, creditcardnrs, etc.




Aanroep
 
retval = %e$decode (type, code)
 
Common velden vóór aanroep
*N/A
Parameters te vullen bij aanroep
type (a*)
De soort decodering waarmee code gecontroleerd moet worden:
11-1
Elfproef waarbij het restcijfer overeen moet komen met het laatste cijfer van het nummer.
11-2
Elfproef waarbij het restgetal van de 11-1 proef van 11 wordt afgetrokken. De uitkomst daarvan moet overeenkomen met het laatste cijfer van het nummer.
Bankrekening- en ISBN-nummers bijvoorbeeld.
CARD
Testen van credit-cardnummers.
En sommige serienummers.
EAN
Testen van EAN-8 en EAN-13.
Streepjescodes op artikelen bijvoorbeeld.
9
Negenproef waarbij het resultaat net zoalng doorgeëvalueerd wordt tot er een rest <= 9 ontstaat. Deze wordt van 9 afgetrokken. De uitkomst daarvan moet overeenkomen met het laatste cijfer van het nummer.
Sommige serienummers.
C-F
Omrekenen van graden Celcius naar graden Fahrenheit.
F-C
Omrekenen van graden Fahrenheit naar graden Celcius.
code (a*)
Het te controleren nummer. Er zijn bepaalde lengte-beperkingen:
11-proeven
Maximaal 10 cijfers.
CARD, EAN
Maximaal 30 cijfers.
9-proef
Maximaal 11 cijfers.
C-F, F-C
Float van maximaal D18.8
Het aantal graden dat wordt meegegeven bij de F-C of C-F parameters kan een min-teken en/of komma bevatten. Wat terug wordt gegeven is een geheel getal dat een factor 100000000 groter is om de 8 posities achter de komma te kunnen bevatten. Definieer daarom een d*.8 veld en deel de uitkomst door 100000000 in dit veld (zie het voorbeeld).
Parameters gevuld bij terugkeer
retval (d1 | d*.8)
Een juiste (1) code, een foute code (0) of een aantal graden (d*.8).
Common velden gevuld bij terugkeer
*N/A
Voorbeelden
 
isbn = 9034324133
ok = %e$decode('11-2', isbn)

 

In bovenstaand voorbeeld wordt een ISBN-nummer gecontroleerd. In het volgende voorbeeld worden 89,6 graden Fahrenheit geconverteerd naar graden Celcius (32°) die in een decimaal veld met acht komma posities terecht komen. Vandaar de speciale deling (//) die het rekenkundige resultaat achter de komma meeneemt in de berekening en de resultaten:

record
graden, d18.8
.proc
graden = %e$decode ('F-C', '89,6') // 100000000
...
...

Bij graden onder nul, moet het min-teken vóóraan worden meegegeven. Dus -32 en niet 32-.


De mogelijkheid wordt geboden aan programmeurs, die niet over de sourcecode beschikken, eigen decoderingscontroles toe te voegen. De source die daarvoor speciaal wordt meegeleverd heet USRDECOD.DBL. Deze subroutine kan geheel naar wens worden ingericht. Beide parameters worden aan deze routine doorgegeven. De derde parameter is een D3 die een waarde >= 0 terug moet geven. Deze waarde wordt dan weer door E$DECODE teruggegeven aan het aanroepende programma.

© 1997- Marc Vos (and others)   -   Privacy Statement   -    Contact Me

On this website, Google Analytics is used to track visitor statistics. These are anonymised data about the number of visitors, which pages they visit on this site, from which regions they visit, which web browsers they use, etc.. You will also see non-personalised ads via Google AdSense. Cookies from Paddle or Paypal are placed when you click on a 'Buy now!' or 'Donate!' button, and possible cookies from Disqus when you use that system to comment on one or more blogposts.
Privacy Statement