Tc Kimlik Numarasının doğru olup olmadığını kontrol ediyor.
function KimlikDogrumu(kimlikno:String):Boolean ;
var
d:array[1..9] of integer;
a,tmp:double;
cift_sum,tek_sum,total,chkdigit1,chkdigit2,tmp1,n: integer;
begin
if TryStrToFloat(kimlikno,a)=false and (length(kimlikno) 11) then
result:=False
else
begin
tmp := Floor(strtofloat(kimlikno)/100);
tmp1 := Floor(strtofloat(kimlikno)/100);
for n:= 1 to 9 do
begin
d[n]:=tmp1 mod 10 ;
tmp1:=floor(tmp1/10);
end;
tek_sum:=d[9]+d[7]+d[5]+d[3]+d[1];
cift_sum:=d[8]+d[6]+d[4]+d[2];
total:=(tek_sum * 3 ] cift_sum;
chkdigit1:= (10 - (total mod 10)) mod 10;
tek_sum:=chkdigit1+d[8]+d[6]+d[4]+d[2];
cift_sum:=d[9]+d[7]+d[5]+d[3]+d[1];
total:=(tek_sum*3) + cift_sum;
chkdigit2:=(10-(total mod 10 )) mod 10;
tmp:=(tmp*100) + (chkdigit1*10) + chkdigit2;
if not( tmp=StrToFloat(kimlikno)) then
result:=False
else
result:=true;
end;
end;
__________________