TCNo Doğrulama

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
ertank
Kıdemli Üye
Mesajlar: 1716
Kayıt: 12 Eyl 2015 12:45

TCNo Doğrulama

Mesaj gönderen ertank »

Merhaba,

İnternet üzerinde biraz arama yaptıktan sonra pascal ile yazılmış aşağıdaki TCNo doğrulama kodunu buldum ve programıma entegre ettim. Program bugüne kadar 500'den fazla *farklı* TCNo doğrulaması yaptı. Ancak bugün bir tane TCNo'yu hatalı olarak gösteriyor.

https://tckimlik.nvi.gov.tr/TCKimlikNo/Dogrulama.aspx sitesinden kişinin bilgilerini girdiğimde site TCNo'yu doğru olarak gösteriyor bana. Acaba bizim TCNo doğrulama yönetmimiz değişmiş olabilir mi? Yoksa bu TCNo bir şekilde yurtdışı uyruklu vatandaşlara verilen türde bir TCNo olabilir mi? Gerçi doğum yeri yurtiçi gözüküyor.

Sorun nedir anlayamadım. Konu ile ilgili yardımcı olabilecek arkadaşlara şimdiden teşekkür ederim.

Doğrulama kodu:

Kod: Tümünü seç

function TCNoDogrula(TCNo:string): Boolean;
var
 bir,iki,uc,dort,bes,alti,yedi,sekiz,dokuz,
 ilk,son,onuncu,onbirinci :  integer;
 _Soniki, pSoniki : string;
begin
  Result := False;
  if (Length(TCNo) < 11) or (Length(TCNo) > 11 ) then begin
    Exit;
  end;

  bir := StrToInt(TCNo[1]);
  iki := StrToInt(TCNo[2]);
  uc  := StrToInt(TCNo[3]);
  dort:= StrToInt(TCNo[4]);
  bes := StrToInt(TCNo[5]);
  alti:= StrToInt(TCNo[6]);
  yedi:= StrToInt(TCNo[7]);
  sekiz:= StrToInt(TCNo[8]);
  dokuz:= StrToInt(TCNo[9]);

  ilk := (bir+uc+bes+yedi+dokuz) * 7;
  son := iki+dort+alti+sekiz;
  onuncu := (ilk - son) mod 10;
  onbirinci := (bir+uc+bes+yedi+dokuz+iki+dort+alti+sekiz+onuncu);
  onbirinci := onbirinci mod 10;

  _Soniki := IntToStr(onuncu) + IntToStr(onbirinci);
  pSoniki := TCNo[10] + TCNo[11];

  if _Soniki = pSoniki then Result := True;
end;
Kullanıcı avatarı
brs
Üye
Mesajlar: 626
Kayıt: 04 Eki 2012 03:52

Re: TCNo Doğrulama

Mesaj gönderen brs »

İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...
ertank
Kıdemli Üye
Mesajlar: 1716
Kayıt: 12 Eyl 2015 12:45

Re: TCNo Doğrulama

Mesaj gönderen ertank »

Çok teşekkür ederim. En başında bunu yapmak istiyordum. İnternette sadece belirli IP numaralarına hizmet verdiğini okuduğum için vazgeçmiştim.

Bu arada SOAP fonksiyonu True/False çevirmek dışında "exception raise" edebiliyormuş. Farklı denemeler yaparken bunu da farkettim. try .. except bloğu içinde oldukça sağlıklı çalışıyor şimdi.
Kullanıcı avatarı
brs
Üye
Mesajlar: 626
Kayıt: 04 Eki 2012 03:52

Re: TCNo Doğrulama

Mesaj gönderen brs »

Rica ederim, teşekkürü benden çok mrmarman hocamız hak ediyor, yanlış aklımda kalmadıysa onun yapmış olduğu bir uygulama...
İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...
Cevapla