dirk Posted March 3, 2006 Posted March 3, 2006 Hallo, Heeft er iemand ooit al een controle calculation gemaakt voor een ISBN getal (10 cijfers versie en/of nu reeds vooruitdenkend de 13 cijfers versie)? thx. Dirk (bib boutersem) ps. uitleg over ISBN kan je oa. hier vinden : https://portal5.boekhuis.nl/portal/page_pageid=194,2280620&_dad=portal&_schema=PORTAL Quote
0 Koen Van Hulle Posted March 5, 2006 Posted March 5, 2006 Hier een controle voor de officiele ISBN 10 (dus geen rekeninghoudende met de soms eigen afwijkende ISBN cijfers meestal eindigend op XX) // ISBN 10 Let ( [ ISBN ="90-270-1165-6" ; filterisbn=Filter(ISBN;"0123456789") // Behoud alleen cijfers ; Controlecijfer = if(length(filterisbn) ? 10 ; GetAsNumber("") ; GetAsNumber(right(filterisbn;1) ) ) ; SumCheck = (Middle (filterisbn ; 1; 1) * 10) + (Middle (filterisbn ; 2; 1) * 9) + (Middle (filterisbn ; 3; 1) * + (Middle (filterisbn ; 4; 1) * 7) + (Middle (filterisbn ; 5; 1) * 6) + (Middle (filterisbn ; 6; 1) * 5) + (Middle (filterisbn ; 7; 1) * 4) + (Middle (filterisbn ; 8; 1) * 3) + (Middle (filterisbn ; 9; 1) * 2) ; CheckControlecijfer = (Ceiling(Sumcheck/11) * 11)- SumCheck ; result = If(Not Isempty(ControleCijfer) and Controlecijfer=CheckControlecijfer; "OK" ; "Niet OK") ] ; result ) ISBN 13 kun je volgende formule gebruiken: // ISBN 13 Let ( [ ISBN =" 978-90-77287-02-6" ; filterisbn=Filter(ISBN;"0123456789") // Behoud alleen cijfers ; Controlecijfer = if(length(filterisbn) ? 13 ; GetAsNumber("") ; GetAsNumber(right(filterisbn;1) ) ) ; SumCheckOneven = Middle (filterisbn ; 1; 1) + Middle (filterisbn ; 3; 1) + Middle (filterisbn ; 5; 1) + Middle (filterisbn ; 7; 1) + Middle (filterisbn ; 9; 1) + Middle (filterisbn ; 11; 1) ; SumCheckEven = Middle (filterisbn ; 2; 1) + Middle (filterisbn ; 4; 1) + Middle (filterisbn ; 6; 1) + Middle (filterisbn ; 8; 1) + Middle (filterisbn ; 10; 1) + Middle (filterisbn ; 12; 1) ; CheckControlecijferCalc = 10 - Right(SumCheckOneven + (SumCheckEven *3);1) ; CheckControlecijfer = If(CheckControlecijferCalc=10;0;CheckControlecijferCalc) ; result = If(Not Isempty(ControleCijfer) and Controlecijfer=CheckControlecijfer; "OK" ; "Niet OK") ] ; result ) Quote
0 dirk Posted March 6, 2006 Author Posted March 6, 2006 Hallo Koen, Bedankt voor de formule. Ga ze straks eens uitwerken en uitproberen. thx. Dirk Quote
Question
dirk
Hallo,
Heeft er iemand ooit al een controle calculation gemaakt voor een ISBN getal (10 cijfers versie en/of nu reeds vooruitdenkend de 13 cijfers versie)?
thx.
Dirk
(bib boutersem)
ps. uitleg over ISBN kan je oa. hier vinden :
https://portal5.boekhuis.nl/portal/page_pageid=194,2280620&_dad=portal&_schema=PORTAL
2 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.