- Bir çoğunuzun işine yarayacağını değerlendirdiğim TCKimlik numarası format doğrulama fonksiyonunu sunuyorum.

Kod: Tümünü seç
Function checkTCId(tcId: String):Boolean;
Var
tmp, tmp1,
odd_sum, even_sum,
ChkDigit2, ChkDigit1,
total : Int64;
d : Array[01..11] of Int64;
n : Integer;
begin
if Length(tcId) <> 11 then Result := False
else
begin
tmp := Trunc(StrToInt64(tcId) / 100);
tmp1 := Trunc(StrToInt64(tcId) / 100);
for n := 1 to 9 do
begin
d[n] := tmp1 mod 10;
tmp1 := Trunc(tmp1 / 10);
end;
odd_sum := d[9]+d[7]+d[5]+d[3]+d[1];
even_sum := d[8]+d[6]+d[4]+d[2];
total := (odd_sum * 3) + even_sum;
ChkDigit1 := (10 - (total mod 10)) mod 10;
odd_sum := ChkDigit1+d[8]+d[6]+d[4]+d[2];
even_sum := d[9]+d[7]+d[5]+d[3]+d[1];
total := (odd_sum * 3) + even_sum;
ChkDigit2 := (10 - (total mod 10)) mod 10;
tmp := (tmp*100)+(ChkDigit1*10)+ChkDigit2;
if NOT (tmp = StrToInt64(tcId))
then Result := False
else Result := True;
end;
end;
- Kullanımı ise şöyle...
Kod: Tümünü seç
procedure TForm1.Button1Click(Sender: TObject);
begin
if checkTCId('11025626126') // Örnektir yanlış bir numara..
then ShowMessage('Doğru bir numara')
else ShowMessage('Yanlış numara')
end;
- Çalışmalarınızda başarılar...