TC KimlikNo Sorgulama (DLL-dpr kodu)

Yazdığınız makaleleri ve üyelerimizin işine yarayacağını düşündüğünüz kodlarınızı gönderebilirsiniz. Bu foruma soru sormayın!
Cevapla
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

TC KimlikNo Sorgulama (DLL-dpr kodu)

Mesaj gönderen aslangeri »

s.a. arkadaşlar.
kod aşağıda. bu dpr dosyasının yanında "kpspublic.pas" ve kpspublic.wsdl" dosyalarıda lazım. D7 ve üzerinde derlenebilir. D6 da tanımlanmamış tipler vs. var. kpdpublicwsdl sini tckimlik sitesinden (adresi hatırlayamadımda ) indirebilirsiniz.
dll dosyasınıda link aşağıda

http://www.atayurduakcakese.com/download/TCkimlik.zip

Kod: Tümünü seç

library tcnodll;

{ Important note about DLL memory management: ShareMem must be the
  first unit in your library's USES clause AND your project's (select
  Project-View Source) USES clause if your DLL exports any procedures or
  functions that pass strings as parameters or function results. This
  applies to all strings passed to and from your DLL--even those that
  are nested in records and classes. ShareMem is the interface unit to
  the BORLNDMM.DLL shared memory manager, which must be deployed along
  with your DLL. To avoid using BORLNDMM.DLL, pass string information
  using PChar or ShortString parameters. }

uses
  Windows,
  Messages,
  SysUtils,
  Variants,
  Classes,
  Graphics,
  Controls,
  Forms,
  Dialogs,
  InvokeRegistry,
  StdCtrls,
  Rio,
  SOAPHTTPClient,
  ExtCtrls,
  kpsPublic in 'kpsPublic.pas';


 function tcnodogrula(tckimlikno:int64;var adi,soyadi:shortstring;var dyili:word):Boolean  ;
 var
 Kimlik:TCKimlikNoDogrulamaSonucu;
 kps:KPSPublicWebServiceSoap;
 a,s:string;
 begin
 kps:=GetKPSPublicWebServiceSoap(true,'',nil);
 kimlik := TCKimlikNoDogrulamaSonucu.Create;
 kimlik.TCKimlikNo := tckimlikno;
 try
   Kimlik := kps.TCKimlikNoDogrula(TCKimlikNo);
 except
  on E:  Exception do begin Showmessage(E.Message);result:=false;exit; end;
 end; //eğer bilgiler aynı ise true gidecek. böylece değişiklik yapılmayacak.
 result:=(kimlik.Ad=adi) and (kimlik.Soyad=soyadi) and (kimlik.DogumYil=dyili);
 a:=kimlik.Ad;
 s:=Kimlik.Soyad;
 adi:=pchar(a);
 soyadi:=pchar(S);
 dyili:=kimlik.DogumYil;
 kimlik.Free;
 end;
 function tcnover(ad,soyad,baba,ana:shortstring;dyeri,dyili:word;cinsiyet:byte):int64;
 var
  vatandas:kpspublic.TemelBilgilerdenKimlikBilgisi;
  kps:kpspublic.KPSPublicWebServiceSoap;
  dogrula:kpspublic.KimlikBilgisi;
 begin
   kps:=GetKPSPublicWebServiceSoap(true,'',nil);
   vatandas:=TemelBilgilerdenKimlikBilgisi.Create;
   vatandas.Ad:=ad;
   vatandas.Soyad:=soyad;
   vatandas.BabaAd:=baba;
   vatandas.AnaAd:=ana;
   vatandas.IlceKod:=dyeri;//doğumyeri nkoyer
   vatandas.DogumYil:=dyili;
   vatandas.Cinsiyet:=bilinmiyor;
   case cinsiyet of
     0 : vatandas.Cinsiyet:= kadin;
     1 : vatandas.Cinsiyet:= erkek;
   end;
   try
     dogrula:=kps.KisiBilgisindenKimlikBilgisiSorgula(vatandas);
     result:=dogrula.TCKimlikNo;
   except
    on E:  Exception do begin Showmessage(E.Message);result:=0;exit; end;
   end;
   vatandas.Free;
 end;
{$R *.res}
   exports   tcnover, tcnodogrula;
begin

end.
buda kpspublic.pas dosyası wsdl yi import ederekde oluşturabilirsiniz ama ben yinde buraya atıyım.

Kod: Tümünü seç

// ************************************************************************ //
// The types declared in this file were generated from data read from the
// WSDL File described below:
// WSDL     : C:\tcno\kpsPublic.wsdl
// Encoding : utf-8
// Version  : 1.0
// (18.09.2005 22:09:50 - 1.33.2.5)
// ************************************************************************ //

unit kpsPublic;

interface

uses InvokeRegistry, SOAPHTTPClient, Types, XSBuiltIns, OPConvert  ;

type

  // ************************************************************************ //
  // The following types, referred to in the WSDL document are not being represented
  // in this file. They are either aliases[@] of other types represented or were referred
  // to but never[!] declared in the document. The types from the latter category
  // typically map to predefined/known XML or Borland types; however, they could also 
  // indicate incorrect WSDL documents that failed to declare or import a schema type.
  // ************************************************************************ //
  // !:long            - "http://www.w3.org/2001/XMLSchema"
  // !:string          - "http://www.w3.org/2001/XMLSchema"
  // !:int             - "http://www.w3.org/2001/XMLSchema"

  CustomBE             = class;                 { "http://kps.nvi.gov.tr/WS/Public" }
  IlBilgisi            = class;                 { "http://kps.nvi.gov.tr/WS/Public" }
  SearchInfoBE         = class;                 { "http://kps.nvi.gov.tr/WS/Public" }
  TCKimlikNoDogrulamaSonucu = class;            { "http://kps.nvi.gov.tr/WS/Public" }
  IlceBilgisi          = class;                 { "http://kps.nvi.gov.tr/WS/Public" }
  KayitYerindenKimlikBilgisi = class;           { "http://kps.nvi.gov.tr/WS/Public" }
  KimlikBilgisi        = class;                 { "http://kps.nvi.gov.tr/WS/Public" }
  TemelBilgilerdenKimlikBilgisi = class;        { "http://kps.nvi.gov.tr/WS/Public" }

  { "http://kps.nvi.gov.tr/WS/Public" }
  CinsiyetTipi = (Bilinmiyor, Erkek, Kadin);



  // ************************************************************************ //
  // Namespace : http://kps.nvi.gov.tr/WS/Public
  // ************************************************************************ //
  CustomBE = class(TRemotable)
  private
  published
  end;



  // ************************************************************************ //
  // Namespace : http://kps.nvi.gov.tr/WS/Public
  // ************************************************************************ //
  IlBilgisi = class(CustomBE)
  private
    FKod: Integer;
    FAd: WideString;
  published
    property Kod: Integer read FKod write FKod;
    property Ad: WideString read FAd write FAd;
  end;

  ArrayOfIlBilgisi = array of IlBilgisi;        { "http://kps.nvi.gov.tr/WS/Public" }


  // ************************************************************************ //
  // Namespace : http://kps.nvi.gov.tr/WS/Public
  // ************************************************************************ //
  SearchInfoBE = class(CustomBE)
  private
  published
  end;



  // ************************************************************************ //
  // Namespace : http://kps.nvi.gov.tr/WS/Public
  // ************************************************************************ //
  TCKimlikNoDogrulamaSonucu = class(SearchInfoBE)
  private
    FTCKimlikNo: Int64;
    FAd: WideString;
    FSoyad: WideString;
    FDogumYil: Integer;
  published
    property TCKimlikNo: Int64 read FTCKimlikNo write FTCKimlikNo;
    property Ad: WideString read FAd write FAd;
    property Soyad: WideString read FSoyad write FSoyad;
    property DogumYil: Integer read FDogumYil write FDogumYil;
  end;



  // ************************************************************************ //
  // Namespace : http://kps.nvi.gov.tr/WS/Public
  // ************************************************************************ //
  IlceBilgisi = class(CustomBE)
  private
    FKod: Integer;
    FAd: WideString;
    FIlKod: Integer;
  published
    property Kod: Integer read FKod write FKod;
    property Ad: WideString read FAd write FAd;
    property IlKod: Integer read FIlKod write FIlKod;
  end;

  ArrayOfIlceBilgisi = array of IlceBilgisi;    { "http://kps.nvi.gov.tr/WS/Public" }


  // ************************************************************************ //
  // Namespace : http://kps.nvi.gov.tr/WS/Public
  // ************************************************************************ //
  KayitYerindenKimlikBilgisi = class(SearchInfoBE)
  private
    FIlceKod: Integer;
    FCiltKod: Integer;
    FAileSiraNo: Integer;
    FBireySiraNo: Integer;
  published
    property IlceKod: Integer read FIlceKod write FIlceKod;
    property CiltKod: Integer read FCiltKod write FCiltKod;
    property AileSiraNo: Integer read FAileSiraNo write FAileSiraNo;
    property BireySiraNo: Integer read FBireySiraNo write FBireySiraNo;
  end;



  // ************************************************************************ //
  // Namespace : http://kps.nvi.gov.tr/WS/Public
  // ************************************************************************ //
  KimlikBilgisi = class(CustomBE)
  private
    FTCKimlikNo: Int64;
    FAd: WideString;
    FSoyad: WideString;
    FAnaAd: WideString;
    FBabaAd: WideString;
    FDogumYil: Integer;
    FCinsiyet: CinsiyetTipi;
    FIlKod: Integer;
    FIlAd: WideString;
    FIlceKod: Integer;
    FIlceAd: WideString;
    FCiltKod: Integer;
    FCiltAd: WideString;
    FAileSiraNo: Integer;
    FBireySiraNo: Integer;
  published
    property TCKimlikNo: Int64 read FTCKimlikNo write FTCKimlikNo;
    property Ad: WideString read FAd write FAd;
    property Soyad: WideString read FSoyad write FSoyad;
    property AnaAd: WideString read FAnaAd write FAnaAd;
    property BabaAd: WideString read FBabaAd write FBabaAd;
    property DogumYil: Integer read FDogumYil write FDogumYil;
    property Cinsiyet: CinsiyetTipi read FCinsiyet write FCinsiyet;
    property IlKod: Integer read FIlKod write FIlKod;
    property IlAd: WideString read FIlAd write FIlAd;
    property IlceKod: Integer read FIlceKod write FIlceKod;
    property IlceAd: WideString read FIlceAd write FIlceAd;
    property CiltKod: Integer read FCiltKod write FCiltKod;
    property CiltAd: WideString read FCiltAd write FCiltAd;
    property AileSiraNo: Integer read FAileSiraNo write FAileSiraNo;
    property BireySiraNo: Integer read FBireySiraNo write FBireySiraNo;
  end;



  // ************************************************************************ //
  // Namespace : http://kps.nvi.gov.tr/WS/Public
  // ************************************************************************ //
  TemelBilgilerdenKimlikBilgisi = class(SearchInfoBE)
  private
    FIlceKod: Integer;
    FAd: WideString;
    FSoyad: WideString;
    FBabaAd: WideString;
    FAnaAd: WideString;
    FCinsiyet: CinsiyetTipi;
    FDogumYil: Integer;
  published
    property IlceKod: Integer read FIlceKod write FIlceKod;
    property Ad: WideString read FAd write FAd;
    property Soyad: WideString read FSoyad write FSoyad;
    property BabaAd: WideString read FBabaAd write FBabaAd;
    property AnaAd: WideString read FAnaAd write FAnaAd;
    property Cinsiyet: CinsiyetTipi read FCinsiyet write FCinsiyet;
    property DogumYil: Integer read FDogumYil write FDogumYil;
  end;


  // ************************************************************************ //
  // Namespace : http://kps.nvi.gov.tr/WS/Public
  // soapAction: http://kps.nvi.gov.tr/WS/Public/%operationName%
  // transport : http://schemas.xmlsoap.org/soap/http
  // style     : document
  // binding   : KPSPublicWebServiceSoap
  // service   : KPSPublicWebService
  // port      : KPSPublicWebServiceSoap
  // URL       : http://tckimlik.nvi.gov.tr/kpsPublic.asmx
  // ************************************************************************ //
  KPSPublicWebServiceSoap = interface(IInvokable)
  ['{25BC430F-102E-DCB2-C875-56D6F192E8B7}']
    function  TCKimlikNoDogrula(const tcKimlikNo: Int64): TCKimlikNoDogrulamaSonucu; stdcall;
    function  IlListesiGetir: ArrayOfIlBilgisi; stdcall;
    function  IlceListesiGetir: ArrayOfIlceBilgisi; stdcall;
    function  IleBagliIlceListesiGetir(const ilKodu: Integer): ArrayOfIlceBilgisi; stdcall;
    function  KayitYerindenKimlikBilgisiSorgula(const be: KayitYerindenKimlikBilgisi; const Ad: WideString; const Soyad: WideString): KimlikBilgisi; stdcall;
    function  KisiBilgisindenKimlikBilgisiSorgula(const be: TemelBilgilerdenKimlikBilgisi): KimlikBilgisi; stdcall;
  end;

function GetKPSPublicWebServiceSoap(UseWSDL: Boolean=System.False; Addr: string=''; HTTPRIO: THTTPRIO = nil): KPSPublicWebServiceSoap;


implementation

function GetKPSPublicWebServiceSoap(UseWSDL: Boolean; Addr: string; HTTPRIO: THTTPRIO): KPSPublicWebServiceSoap;
const
  defWSDL = 'kpsPublic.wsdl';
  defURL  = 'http://tckimlik.nvi.gov.tr/kpsPublic.asmx';
  defSvc  = 'KPSPublicWebService';
  defPrt  = 'KPSPublicWebServiceSoap';
var
  RIO: THTTPRIO;
begin
  Result := nil;
  if (Addr = '') then
  begin
    if UseWSDL then
      Addr := defWSDL
    else
      Addr := defURL;
  end;
  if HTTPRIO = nil then
  begin
    RIO := THTTPRIO.Create(nil);
    //rio.Converter.Encoding:='utf-8';
    //rio.Converter.Options:= [soSendMultiRefObj,soSendMultiRefArray,soTryAllSchema,soRootRefNodesToBody,soDocument,soCacheMimeResponse];
    rio.HTTPWebNode.UseUTF8InHeader:=true;
  end
  else
    RIO := HTTPRIO;
  try
    Result := (RIO as KPSPublicWebServiceSoap);
    if UseWSDL then
    begin
      RIO.WSDLLocation := Addr;
      RIO.Service := defSvc;
      RIO.Port := defPrt;
    end else
      RIO.URL := Addr;
  finally
    if (Result = nil) and (HTTPRIO = nil) then
      RIO.Free;
  end;
end;


initialization
  InvRegistry.RegisterInterface(TypeInfo(KPSPublicWebServiceSoap), 'http://kps.nvi.gov.tr/WS/Public', 'utf-8');
  InvRegistry.RegisterDefaultSOAPAction(TypeInfo(KPSPublicWebServiceSoap), 'http://kps.nvi.gov.tr/WS/Public/%operationName%');
  InvRegistry.RegisterInvokeOptions(TypeInfo(KPSPublicWebServiceSoap), ioDocument);
  RemClassRegistry.RegisterXSInfo(TypeInfo(CinsiyetTipi), 'http://kps.nvi.gov.tr/WS/Public', 'CinsiyetTipi');
  RemClassRegistry.RegisterXSClass(CustomBE, 'http://kps.nvi.gov.tr/WS/Public', 'CustomBE');
  RemClassRegistry.RegisterXSClass(IlBilgisi, 'http://kps.nvi.gov.tr/WS/Public', 'IlBilgisi');
  RemClassRegistry.RegisterXSInfo(TypeInfo(ArrayOfIlBilgisi), 'http://kps.nvi.gov.tr/WS/Public', 'ArrayOfIlBilgisi');
  RemClassRegistry.RegisterXSClass(SearchInfoBE, 'http://kps.nvi.gov.tr/WS/Public', 'SearchInfoBE');
  RemClassRegistry.RegisterXSClass(TCKimlikNoDogrulamaSonucu, 'http://kps.nvi.gov.tr/WS/Public', 'TCKimlikNoDogrulamaSonucu');
  RemClassRegistry.RegisterXSClass(IlceBilgisi, 'http://kps.nvi.gov.tr/WS/Public', 'IlceBilgisi');
  RemClassRegistry.RegisterXSInfo(TypeInfo(ArrayOfIlceBilgisi), 'http://kps.nvi.gov.tr/WS/Public', 'ArrayOfIlceBilgisi');
  RemClassRegistry.RegisterXSClass(KayitYerindenKimlikBilgisi, 'http://kps.nvi.gov.tr/WS/Public', 'KayitYerindenKimlikBilgisi');
  RemClassRegistry.RegisterXSClass(KimlikBilgisi, 'http://kps.nvi.gov.tr/WS/Public', 'KimlikBilgisi');
  RemClassRegistry.RegisterXSClass(TemelBilgilerdenKimlikBilgisi, 'http://kps.nvi.gov.tr/WS/Public', 'TemelBilgilerdenKimlikBilgisi');

end.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
tuanna
Üye
Mesajlar: 582
Kayıt: 06 Ara 2004 05:01
Konum: Ankara
İletişim:

Mesaj gönderen tuanna »

sanırım sitede sorun var

http://www.atayurduakcakese.com/download/TCkimlik.zip
bu link çalışmıyor
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

http://www.atayurduakcakese.com/download/TCKimlik.zip şeklinde çalışıyor. Eline sağlık @aslangeri :wink:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
mkysoft
Kıdemli Üye
Mesajlar: 3110
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Mesaj gönderen mkysoft »

diğer kısımlarınıda ben yazayım.
Bilgi olması açısından:
TC Kimlik numaralarının son hanesi kontrol içindir. İlk 10 rakamı toplayıp mod 10 yaparsanız son hane karşınıza çıkar. TC kimlik no kontrolünde önce bunu yapmak hız kazandır. Herkese kolay gelsin.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

@mkysoft

- Söylediğine göre 12345678905 ise
1..0 toplamı = 45
45 MOD 10 = (4*10) + 5 'den 5 olduğuna göre doğru bir TCKimlik numarası gibi görünebilir. Bunun en sağlam kontrolü tek ve çift basamakların ayrı ayrı işleme alındığı metodu denemelisin.

viewtopic.php?t=13165 Bunu kullanıyorum.
Resim
Resim ....Resim
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Hocam denediğim 7 ayrı kimlik no için kontrol ettiğimde mod lu yöntem doğru çıkıyor :wink:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

@rsimsek Hocam kod yanlış demedim sadece burada Mod 10'a göre bir TCKimlik numarasının hatalı olma ihtimali 9'dur.

- Yeterince güvenilir bulunurusa devam... Yazdığım numara da doğru o zaman :)
Resim
Resim ....Resim
mkysoft
Kıdemli Üye
Mesajlar: 3110
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Mesaj gönderen mkysoft »

Ben daha önce açıklanan kodu görmemiştim. Hashane programlarıyla uğraşan bir arkadaşım SSK programında bu tür bir kod olduğundan bahsetti. Bende paylaşmak istedim.

Diğer yöntem biraz daha karışık ama daha iyi sonuçlar veriyordur.
mkysoft
Kıdemli Üye
Mesajlar: 3110
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Mesaj gönderen mkysoft »

TCKimlik.dll versiyon 0.0.0.2 http://www.mkysoft.com/dosyalar/TCKimlik.zip
dpr dosyası:

Kod: Tümünü seç

library TCKimlik;

uses
  SysUtils,
  Dialogs,
  InvokeRegistry,
  Rio,
  SOAPHTTPClient,
  kpsPublic in 'kpsPublic.pas';

function TCKimlikDogrula(tckimlikno: int64; var adi, soyadi: shortstring; var dyili: word): Boolean;
var
  Kimlik: TCKimlikNoDogrulamaSonucu;
  kps: KPSPublicWebServiceSoap;
  a, s: string;
begin
  kps := GetKPSPublicWebServiceSoap(False, '', nil);
  kimlik := TCKimlikNoDogrulamaSonucu.Create;
  kimlik.TCKimlikNo := tckimlikno;
  try
    Kimlik := kps.TCKimlikNoDogrula(TCKimlikNo);
  except
    on E: Exception do begin Showmessage(E.Message); result := false; exit; end;
  end; //eğer bilgiler aynı ise true gidecek. böylece değişiklik yapılmayacak.
  result := (kimlik.Ad = adi) and (kimlik.Soyad = soyadi) and (kimlik.DogumYil = dyili);
  a := kimlik.Ad;
  s := Kimlik.Soyad;
  adi := pchar(a);
  soyadi := pchar(S);
  dyili := kimlik.DogumYil;
  kimlik.Free;
end;

function TCKimlikBilgiVer(TCKimlikNo: int64): ShortString;
var
  Kimlik: TCKimlikNoDogrulamaSonucu;
  kps: KPSPublicWebServiceSoap;
begin
  kps := GetKPSPublicWebServiceSoap(False, '', nil);
  kimlik := TCKimlikNoDogrulamaSonucu.Create;
  kimlik.TCKimlikNo := TCKimlikNo;
  try
    Kimlik := kps.TCKimlikNoDogrula(TCKimlikNo);
  except
    on E: Exception do
    begin
      Showmessage(E.Message);
      result := '';
      exit;
    end;
  end; //eğer bilgiler aynı ise true gidecek. böylece değişiklik yapılmayacak.
  Result := '<a>'+kimlik.Ad+'<s>'+ kimlik.Soyad+'<y>'+inttostr(kimlik.DogumYil);
  kimlik.Free;
end;


Function IlceKoduBul(Ili,Ilcesi: ShortString): Word;
var
  kps: kpspublic.KPSPublicWebServiceSoap;
  IlListesi: ArrayOfIlBilgisi;
  IlceListesi: ArrayOfIlceBilgisi;
  i,j: Integer;
begin
  Result := 0;
  kps := GetKPSPublicWebServiceSoap(False, '', nil);
  try
    IlListesi := KPS.IlListesiGetir;
  except
    on E: Exception do
    begin
      Showmessage(E.Message);
      Result := 0;
      Exit;
    end;
  end;
  for i := 0 to Length(IlListesi) - 1 do
    if IlListesi[i].Ad = Ili then
    begin
      try
        IlceListesi := KPS.IleBagliIlceListesiGetir(IlListesi[i].Kod);
      except
        on E: Exception do
        begin
          Showmessage(E.Message);
          Result := 0;
          Exit;
        end;
      end;  
      for j := 0 to Length(IlceListesi) - 1 do
        if IlceListesi[j].Ad = Ilcesi then
        begin
          Result := IlceListesi[j].Kod;
          break;
        end;
      break;
    end;
  if Result = 0 then
  begin
    Showmessage('İl yada İlçe Bilgisi Yanlış');
    Exit;
  end;
end;

function TemelBilgilerdenTCKimlik(Ad, Soyad, Baba, Ana,  Ili, Ilcesi: ShortString; DogumYili: word; Cinsiyeti: byte): int64;
var
  Vatandas: kpspublic.TemelBilgilerdenKimlikBilgisi;
  kps: kpspublic.KPSPublicWebServiceSoap;
  Dogrula: kpspublic.KimlikBilgisi;
begin
  kps := GetKPSPublicWebServiceSoap(False, '', nil);
  Vatandas := TemelBilgilerdenKimlikBilgisi.Create;
  Vatandas.Ad := Ad;
  Vatandas.Soyad := Soyad;
  Vatandas.BabaAd := Baba;
  Vatandas.AnaAd := Ana;
  Vatandas.IlceKod := IlceKoduBul(Ili, Ilcesi);
  Vatandas.DogumYil := DogumYili;
  Vatandas.Cinsiyet := Bilinmiyor;
  case Cinsiyeti of
    0: Vatandas.Cinsiyet := Erkek;
    1: Vatandas.Cinsiyet := Kadin;
  end;
  try
    Dogrula := kps.KisiBilgisindenKimlikBilgisiSorgula(vatandas);
    result := Dogrula.TCKimlikNo;
  except
    on E: Exception do begin Showmessage(E.Message); result := 0; exit; end;
  end;
  Vatandas.Free;
end;

function KayitYerindenTCKimlik(Ad, Soyad, Ili, Ilcesi: ShortString; CiltKodu, AileSiraNosu, BireySiraNosu: Word): ShortString;
var
  Vatandas: kpspublic.KayitYerindenKimlikBilgisi;
  kps: kpspublic.KPSPublicWebServiceSoap;
  Dogrula: kpspublic.KimlikBilgisi;
  CinsiyetStr: ShortString;
begin
  kps := GetKPSPublicWebServiceSoap(False, '', nil);
  Vatandas := KayitYerindenKimlikBilgisi.Create;
  Vatandas.IlceKod := IlceKoduBul(Ili, Ilcesi);
  Vatandas.CiltKod := CiltKodu;
  Vatandas.AileSiraNo := AileSiraNosu;
  Vatandas.BireySiraNo := BireySiraNosu;
  try
    Dogrula := KPS.KayitYerindenKimlikBilgisiSorgula(Vatandas, Ad, Soyad);
    case Dogrula.Cinsiyet of
      Erkek: CinsiyetStr:= 'Erkek';
      Kadin: CinsiyetStr:= 'Kadın';
    else
      CinsiyetStr:= 'Bilinmiyor';
    end;
    result := '<t>'+inttostr(Dogrula.TCKimlikNo)+'<b>'+Dogrula.BabaAd+'<a>'+Dogrula.AnaAd+'<c>'+CinsiyetStr;
  except
    on E: Exception do
    begin
      Showmessage(E.Message);
      result := '';
      exit;
    end;
  end;
  Vatandas.Free;
end;

{$R *.res}
exports KayitYerindenTCKimlik, TemelBilgilerdenTCKimlik, TCKimlikDogrula, TCKimlikBilgiVer;
begin

end.
Sonu string olarak dönen fonksiyonlarda stringleri birleştirmiştim. Bunları değiştirip array yapmayı düşünüyorum.
NOT: Artık düşünmüyorum DLL 'lerden array almak biraz problemli imiş.
ikut

Mesaj gönderen ikut »

mkysoft yazdı:TCKimlik.dll versiyon 0.0.0.2 http://www.mkysoft.com/dosyalar/TCKimlik.zip
dpr dosyası:
Merhaba DLl kullanırken sharemem i ilgili unitte ilk unit olarak ekledim keza projeyede oyle..

sonra

Kod: Tümünü seç

 function TCKimlikDogrula(tckimlikno: int64; var adi, soyadi: shortstring; var dyili: word): Boolean;                              stdcall; External 'Tckimlik.dll';
 function TCKimlikBilgiVer(TCKimlikNo: int64): ShortString;                                                                        stdcall; External 'Tckimlik.dll';
 Function IlceKoduBul(Ili,Ilcesi: ShortString): Word;                                                                              stdcall; External 'Tckimlik.dll';
 function TemelBilgilerdenTCKimlik(Ad, Soyad, Baba, Ana,  Ili, Ilcesi: ShortString; DogumYili: word; Cinsiyeti: byte): int64;      stdcall; External 'Tckimlik.dll';
 function KayitYerindenTCKimlik(Ad, Soyad, Ili, Ilcesi: ShortString; CiltKodu, AileSiraNosu, BireySiraNosu: Word): ShortString;    stdcall; External 'Tckimlik.dll';
bir butonun onclickine şu kodu

Kod: Tümünü seç


  ShowMessage(IntToStr(TemelBilgilerdenTCKimlik('İBRAHİM HALİL','KUTLUAY','ABDULKADİR','DURİYE','URFA','MERKEZ',1974,1)));
yazdığımda AV hatası alıyorum .... birde bunu dll olmadan yapsak olmazmı. ille soap dll rinide mi dağıtmak gerekir o zaman.

ayrıca muharrem hocamın doğrulama foksyonunuda eklemeniz mümkünmü ?

Saygılar
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

buraya devam ediyorum.
viewtopic.php?p=99099#99099
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2248
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

Mesaj gönderen Kuri_YJ »

Selam Arkadaşlar,

Madem yaptınız tam olsun :), son ve çalışır hali nerde:?: En Son Halini Nereden edinebiliriz:?:

Kolay Gelsin
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
ikut

Mesaj gönderen ikut »

merhaba

evet ya ustad...

cidden şunu tamamen bitmiş halde programlaa gommeye uygun halde bir gorsek. her sürümde br sorun çıkıyor.
Cevapla