otsin taga EV standardit "EV ST 585-90. Isikukood. Struktuur." ja täpsemalt
selle viimase numbri, kontrollnumbri arvutamise meetodit.
Lehel http://w3.andmevara.ee/index.php?path=0x134#Isikukood on kõik esimene
ots kenasti lahti seletatud (ja varemgi teada).
http://www.eki.ee/itstandard/FDCC.shtml on alajaotises 26: Isikute ja
asutuste identifitseerimisnumbrid seletatud muuhulgas ka, et "Pangakontode
numbrid Eestis ...Viimane märk kontonumbris on kontrolljärk. Kontrolljärgu
arvutamine toimub 7-3-1 meetodi alusel." aga kas sama 7-3-1 kehtib ka
isikukoodi kohta? http://www.pangaliit.ee/731naide.htm põhjal kontrollides
mitte.
Otse Standardiametisse pöördumisel on võimalus kas tulla kohale Tallinn Aru
tn.10 raamatukokku või siis osta see standard raha eest.
Olen tänulik kui keegi selle Eesti isikukoodi kontrollnumbri arvutamise
meetodi kas siia gruppi või mulle otse kas lahti seletab või pädevale
dokumendile veebis viitab.
---
Toomas Mölder, toomas...@mail.ee
GSM: +372 55 22 000
"Toomas Mölder" wrote:
>
> head kaasvõitlejad,
>
> otsin taga EV standardit "EV ST 585-90. Isikukood. Struktuur." ja täpsemalt
> selle viimase numbri, kontrollnumbri arvutamise meetodit.
> Toomas Mölder, toomas...@mail.ee
> GSM: +372 55 22 000
Peale visa otsimist riiulilt üles leitud! Paberkandjal.
6 A4 lehte.
See meetod on seal olemas.
(Isikukoodi töötlusprogrammi viimane
versioon veel arvutist leidmata.)
Alo Raidaru
07 331025
> otsin taga EV standardit "EV ST 585-90. Isikukood. Struktuur." ja
täpsemalt
> selle viimase numbri, kontrollnumbri arvutamise meetodit.
Käepärast mul seda pole, aga see standard oli (on?) vigane - seal oli vist
mingi selline bugi, et oli öeldud, et 5 ja 6-ga algavaid koode hakatakse
väljastama XXI sajandil, aga praktikas hakati juba 2000 aastal. :-)
Muuseas - ei tohi unustada, et Eestis on praktikas väljastatud ka korduvaid
ning kontrollsumma arvutamise reeglile mittevastavaid isikukoode.
> Olen tänulik kui keegi selle Eesti isikukoodi kontrollnumbri arvutamise
> meetodi kas siia gruppi või mulle otse kas lahti seletab või pädevale
> dokumendile veebis viitab.
Alltoodud stuff igastahes töötab. Kontrollitud. (Halva stiili pärast võib ju
viriseda - loomulikult saaks ka tsükliga, aga nii on kiirem.)
FUNCTION SecurityID_OK(p_vcSecID IN VARCHAR2) RETURN BOOLEAN IS
lc_nMaxLen CONSTANT NUMBER(2) := 11;
l_nMod NUMBER(2);
BEGIN
l_nMod := Mod(
(To_Number(SubStr(p_vcSecID,1 ,1)) ) +
(To_Number(SubStr(p_vcSecID,2 ,1)) * 2)
+ (To_Number(SubStr(p_vcSecID,3 ,1)) * 3) +
(To_Number(SubStr(p_vcSecID,4 ,1)) * 4)
+ (To_Number(SubStr(p_vcSecID,5 ,1)) * 5) +
(To_Number(SubStr(p_vcSecID,6 ,1)) * 6)
+ (To_Number(SubStr(p_vcSecID,7 ,1)) * 7) +
(To_Number(SubStr(p_vcSecID,8 ,1)) * 8)
+ (To_Number(SubStr(p_vcSecID,9 ,1)) * 9) +
(To_Number(SubStr(p_vcSecID,10,1)) )
,lc_nMaxLen);
IF (l_nMod = (lc_nMaxLen - 1)) THEN
l_nMod := Mod(
(To_Number(SubStr(p_vcSecID,1 ,1)) * 3) +
(To_Number(SubStr(p_vcSecID,2 ,1)) * 4)
+ (To_Number(SubStr(p_vcSecID,3 ,1)) * 5) +
(To_Number(SubStr(p_vcSecID,4 ,1)) * 6)
+ (To_Number(SubStr(p_vcSecID,5 ,1)) * 7) +
(To_Number(SubStr(p_vcSecID,6 ,1)) * 8)
+ (To_Number(SubStr(p_vcSecID,7 ,1)) * 9) +
(To_Number(SubStr(p_vcSecID,8 ,1)) )
+ (To_Number(SubStr(p_vcSecID,9 ,1)) * 2) + (To_Number(SubStr(p_vcSecI
D,10,1)) * 3)
,lc_nMaxLen);
IF (l_nMod = (lc_nMaxLen - 1)) THEN
l_nMod := 0;
END IF;
END IF;
RETURN l_nMod = To_Number(SubStr(p_vcSecID,lc_nMaxLen,1));
END SecurityID_OK;
---
Toomas Mölder, toomas...@mail.ee
"Toomas Mölder" <toomas...@mail.ee> wrote in message
news:anu9sl$2s1$1...@kadri.ut.ee...
Pole ka veel päris õige - sinna lõppu käib veel:
If k = 10 Then k =0
v
Ära hüüa isikukoodi SecurityID'ks. See võib algajaid programmeerijaid
viia kallitele eksiteedele.
--
Andres Soolo <so...@ut.ee>
One of the most striking differences between a
cat and a lie is that a cat has only nine lives.
-- Mark Twain
"Toomas Mölder" wrote:
>
> ise küsin, ise vastan :)
> kontrollnumber, mis formeeritakse isikukoodi standardis toodud korra
> kohaselt.
> Arvutatakse valemiga
> k = (nr1 + nr2 * 2 + nr3 * 3 + nr4 * 4 + nr5 * 5 + nr6 * 6+ nr7 *7 + nr8 * 8
> + nr9 * 9 + nr10) mod 11
> If k = 10 Then k = (nr1 * 3 + nr2 * 4 + nr3 * 5 + nr4 * 6 + nr5 * 7 + nr6 *
> 8 + nr7 * 9 + nr8 + nr9 * 2 + nr10 * 3) mod 11
nr8*1
Sõnastus on
2. Kontrollnumbri formeerimine
Kontrollnumber formeeritakse "Moodul 11" meetodil, kasuta-
des I või II astme kaalu:
X XXXXXX XXX
I astme kaal 1 234567 891
II astme kaal 3 456789 123
Koodi kümme seimest numbrit korrutatakse igaüks omaette
I astme kaaluga, korrutised liidetakse. Saadud summa jagatakse
11ga, Kui jääk ei võrdu 10ga, on jääk kontrollnumbriks.
Kui jääk võrdub 10ga, siis korrutatakse koodi kümme esimest
numbrit igaüks omaette II astme kaaluga. Korrutised liidetakse.
Saadud summa jagatakse 11ga. Kui jääk ei võrdu 10ga, on saadud
jääk kontrollnumbriks. Kui jääk võrdub 10ga, siis on kontroll-
number 0.
Edasi tuleb kaks näidet.
Säilitasin ka lehe kujunduse:)
A.R.