Beregning af kontrolcifre af FI 71 kort i C#
Jeg har bøvlet med at få kontrolcifre udregnet til FI 71 kortnu har jeg en function:
function modulus($t) {
$t=str_pad($t, 14, 0, STR_PAD_LEFT);
$v=1;
$s=0;
for ($i=0;$i<14;$i++) {
$r=$v*$t[$i];
if ($r>9) $r=$r-9;
$s+=$r;
$v=$v==1?2:1;
}
return $t.fmod(10-fmod($s,10),10);
}
Lidt VB eksempel
dim b_id_str as string
b_id_str = "1318465"
b_id_str = b_id_str.ToString().PadLeft(14, "0"c)
dim b_id as integer()
b_id = new integer(){0,0,0,0,0,0,0,0,0,0,0,0,0,0}
dim w as integer()
w = new integer(){1,2,1,2,1,2,1,2,1,2,1,2,1,2}
dim i as integer
dim s as integer
dim tmp as integer
for i = 0 to b_id.Length - 1
b_id(i) = Convert.ToInt32(b_id_str.SubString(i,1))
next i
s = 0
for i = 0 to b_id.Length - 1
tmp = b_id(i) * w(i)
if tmp > 9 then tmp = tmp - 9
s = s + tmp
next i
s = s mod 10
if s > 0 then s = 10 - s
Console.Write(s.ToString())
Men jeg vil gerne have koden om til C# sådan at jeg kan Smide det på en side hvor jeg kan sende tal med som parameter og få controlcifre mod udregningen tilbage i En HttpWebRequest... Dette vil jeg gerne gøre enten på en site eller webservice som kan kaldes fra hvor som helst. Også en metode der returnerer boolsk hvis den allerede udregnede controlcifre er gyldig eller ej...
På forhånd tak :)