asp sayfadaki bilgileri çekme..

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
ilhanakkus
Üye
Mesajlar: 1
Kayıt: 15 Şub 2004 12:41

asp sayfadaki bilgileri çekme..

Mesaj gönderen ilhanakkus »

arkadaşlar formunuzu yeni incelemeye başladım ...asp bi sayfada sürekli değişen bilgiler var...havalimanı uçak geliş gidiş saatleri ben bu sayfaları delphide nasıl görebelerim o bilgileri nasıl çekebelirim..yardım ederseniz çok sevenirim..
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4740
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

Selam...

- Forumda arama yaptırırsanız benzer sorulara cevap verilmişti, bulabilirsiniz...

- Cevap yazdığım bir başlığın linkini veriyorum... Cevabınız burada var.

viewtopic.php?p=6817&highlight=#6817

:arrow: HTML sayfayı analiz edip sorgu formatını çıkarın. Eğer site Post değil de Get operasyonu kabul ediyorsa (örnek... www.sinema.com kabul etmiyor) ve https:// ile başlayan secure bağlantı yapılmıyorsa, resimsiz ve hızlı bir şekilde Internet paletindeki NMHTTP bileşeni ile basitçe okuyabilir, HTML parse edip istediğiniz bilgileri çekebilirsiniz... :idea:

:arrow: Diğer türlü WebBrowser ile forumu POST ettirerek okumanız gerekecek. Umarım önceki ihtimaldir de işiniz kolaycacık hallolur...


- Çalışmalarınızda başarılar...
:idea:
Resim
Resim ....Resim
Delhici
Üye
Mesajlar: 176
Kayıt: 20 Eyl 2003 09:04

Editten arama yaptırmak.

Mesaj gönderen Delhici »

Merhaba arkadaşlar
Bu forma uzun zamandır üye olduğum ve epey faydalandığım halde ilk defa soru soruyorum. Kendime ait küçük bir web browser yapıyorum. Edit kutularını kullanarak bazı web sayfalarından arama yaptırıyorum. http://vil.nai.com/vil/default.asp sitesinin arama bölümünü kullanamıyorum. Bu sitede bu konu hakkında bir sürü bölüm bulunmakla beraber hiç biri işime yaramadı.. Yada beceremedim. Bana yardımcı olabilir misiniz?
http://www.bargem.info
Yaşıyorum..... İnadına değil yaptıklarım. Herşey istediğim için oluyor. İstediğim için türkü dinliyorum. İstediğim için çalışıyorum. İstediğim için yaşıyorum ve istediğim için seni seviyorum...
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4740
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

Merhabalar...

- Sayfayı sizin için inceledim...
- Site içi arama scripti...

Kod: Tümünü seç

http://naiwebsearch1.nai.com/siteserver/knowledge/search/nai/search-result.asp?q1=ARAMA&ct=NAI&advanced=yes&c2=@filewrite&o2=%3E&Search.x=12&Search.y=11
... şeklinde... GET ile aramaya izin verilmekte.

- Virus Arama scripti ki sanıyorum bahsettiğiniz buydu bir kademe zor.

Kod: Tümünü seç

http://vil.nai.com/alphar.asp?SearchType=2&char=virusadi
...şeklindeymiş fakat GET ile aramaya izin verilmediğinden TWebBrowser vb. bileşenlerle bu sayfaya POST yapmanız gerekiyor...
Resim
Resim ....Resim
Delhici
Üye
Mesajlar: 176
Kayıt: 20 Eyl 2003 09:04

Mesaj gönderen Delhici »

cevabınız için çok teşekkür ederim. Aslında Post metodunuda çok denedim. Ama bir türlü olmuyor. Başka bir yol olabilir mi?
http://www.bargem.info
Yaşıyorum..... İnadına değil yaptıklarım. Herşey istediğim için oluyor. İstediğim için türkü dinliyorum. İstediğim için çalışıyorum. İstediğim için yaşıyorum ve istediğim için seni seviyorum...
Kullanıcı avatarı
sadettinpolat
Moderator
Mesajlar: 2131
Kayıt: 07 Ara 2003 02:51
Konum: Ankara
İletişim:

Mesaj gönderen sadettinpolat »

forma bir tane webbrowser ve memo bileşeni koy
gerekli değişkenleri tanımla

uses bölümünde aşağıda yazanlardan eksik olanları ekle

bu kod ile kimlik numarasını post metoduyla alabiliyorum.
burdaki adresi ve gönderilen parametreleri değiştirmen gerekcek...

Kod: Tümünü seç

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs, StdCtrls, OleCtrls, SHDocVw,comobj,MidItems,MSHTML,ActiveX,
  ComCtrls;

Kod: Tümünü seç

procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;
  const pDisp: IDispatch; var URL: OleVariant);
begin
SayfaYuklendiMi := True;
end;

Kod: Tümünü seç

function WB_GetHTMLCode(WebBrowser: TWebBrowser; ACode: TStrings): Boolean; 
var 
  ps: IPersistStreamInit; 
  ss: TStringStream; 
  sa: IStream; 
  s: string; 
begin 
  ps := WebBrowser.Document as IPersistStreamInit; 
  s := ''; 
  ss := TStringStream.Create(s); 
  try 
    sa := TStreamAdapter.Create(ss, soReference) as IStream; 
    Result := Succeeded(ps.Save(sa, True)); 
    if Result then ACode.Add(ss.Datastring); 
  finally 
    ss.Free; 
  end;
end; 



Kod: Tümünü seç

function TForm1.GetTCKimlikNo(Ilce,Ad, Soyad, CiltNo, AileSiraNo,
  SiraNo: String): String;
var
  i: Integer;
  EncodedStr: string;
  Header,abc: OleVariant;
  Post: OleVariant;
  tmp:string;
begin
Result := '';
EncodedStr := 'ilce='+Ilce+
              '&ad='+Ad+
              '&soyad='+Soyad+
              '&cilt='+CiltNo+
              '&hane='+AileSiraNo+
              '&sira='+SiraNo+
              '&go=Kimlik Numaramı Bul';
Post := VarArrayCreate([0, Length(EncodedStr) - 1], varByte);

for I := 1 to Length(EncodedStr) do
  Post[I - 1] := Ord(EncodedStr[I]);

Header := 'Content-Type: application/x-www-form-urlencoded' + #10#13;


abc := navNoHistory or navNoReadFromCache or navNoWriteToCache;
WebBrowser1.Navigate('http://tckimlik.nvi.gov.tr/pls/kimlik/kimlik', abc,
                      EmptyParam, Post, Header);

while WebBrowser1.Busy do
  Application.ProcessMessages;

while not SayfaYuklendiMi do
  Application.ProcessMessages;


memo1.Lines.Clear;

WB_GetHTMLCode(WebBrowser1,memo1.Lines);

//sayfanın html kodunu memoya aktar

.................
................
.................

end;



Kullanıcı avatarı
sadettinpolat
Moderator
Mesajlar: 2131
Kayıt: 07 Ara 2003 02:51
Konum: Ankara
İletişim:

Mesaj gönderen sadettinpolat »

Kod: Tümünü seç

function WB_SaveHTMLCode(WebBrowser: TWebBrowser; const FileName: TFileName): Boolean; 
var 
  ps: IPersistStreamInit; 
  fs: TFileStream; 
  sa: IStream; 
begin 
  ps := WebBrowser.Document as IPersistStreamInit; 
  fs := TFileStream.Create(FileName, fmCreate); 
  try 
    sa := TStreamAdapter.Create(fs, soReference) as IStream; 
    Result := Succeeded(ps.Save(sa, True));
  finally 
    fs.Free; 
  end; 
end; 
istersen bu fonksiyon ile html kodu bi dosyaya kaydedebilirsin.
Delhici
Üye
Mesajlar: 176
Kayıt: 20 Eyl 2003 09:04

Mesaj gönderen Delhici »

yardımlarınız için çok teşekkür ederim.. Oldu gibi ama, yine sorun var.. Biraz da ben uğraşayım.Bu olay çok fazla başımı ağrıttı.. :D .. Tabi her zaferin bir bedeli olmalı... Bizde ödeyelim bedelini.. :lol: ama kodların tamamını göndermemişsin. BAri gönderseydin de hiç komut yazma zahmetinde bulunmasaydım. :D Çok teşekkür ederim arkadaşım.

Eğer yapamazsam yine size dönerim haberiniz olsun.
http://www.bargem.info
Yaşıyorum..... İnadına değil yaptıklarım. Herşey istediğim için oluyor. İstediğim için türkü dinliyorum. İstediğim için çalışıyorum. İstediğim için yaşıyorum ve istediğim için seni seviyorum...
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4740
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

Merhabalar...

- Post işlemini hallettiğini varsayarak sana McAfeeParse procedure hazırladım onu vereyim... Arama olarak VirusName : Love ve bu kelimeyi içeren (Contains) seçeneğini kullandım...

Kod: Tümünü seç

procedure McAfeeParse(Gelen, Ayiklanan: TStrings);
Var
  Sayac : Integer;
  Aranan,
  Virus,
  Link,
  Deger : String;
begin
  Sayac := -1;
  Repeat // aşağıya kadar bir sürü var ama Aranan Kelime'den sonrakiler lazım..
    Inc(Sayac);
  Until (Pos('/vil/content/', Gelen[Sayac]) > 0)
     or (Sayac > Gelen.Count)
     or xIptal;

  Aranan := '/vil/content/v_'; // bu satırlarda virüs bilgisi linki var
  Repeat
    Inc(Sayac);
    If (Pos(Aranan, Gelen[Sayac]) > 0) then
    begin
      Deger := Gelen[Sayac];
      Delete(Deger, 1, Pos(UpperCase(Aranan), UpperCase(Deger))+Length(Aranan)-1);
      Link := Copy(Deger, 1, Pos('.', Deger)-1);

      Delete(Deger, 1, Pos('<B>', UpperCase(Deger))+2);
      Virus := Copy( Deger, 1, Pos('</B>', UpperCase(Deger))-1);
      Ayiklanan.Add(Format('%7s|%s', [Link, Virus]));
    end;
  Until (Sayac >= Gelen.Count-1) or ( xIptal );
end;
Kullanımı :
:arrow: Formda bir adet TMemo vardı ya, işte o memo'ya HTML Text'i attığını varsayıyorum...
:arrow: Ek olarak Parse edilmiş veriyi yansıtacağın, bir adet TListBox koy...

Kod: Tümünü seç

 McAfeeParse(Memo1.Lines, ListBox1.Items);
:arrow: Sonuç :

Kod: Tümünü seç

 117181|A97M/Lovely
  98226|Freelove
  10419|Funlove
 109408|HKLove
  98617|I-Worm.Loveletter
  98655|I-Worm.Newlove
   1485|I_Love
 104841|ILoveDOS.5154
  98617|IRC/Loveletter
  98833|IRC/LoveLetter.bi
 125228|Joke-LoveScreen
 107724|Joke-Mustlove
 125384|Joke-Mustlove
  98779|LEARN TO LOVE hoax
 126272|Linux/Debilove.10714
 126271|Linux/Debilove.dam
  98617|Love Bug
    728|Love Child
  98617|LOVE-LET.VBS
  98617|LOVE-LETTER-FOR-YOU.TXT.vbs
    728|LoveChild
 109633|Lovechild
    728|LoveChild-2710
    728|LoveChild.2710
 125301|LoveGate.AL Worm (iDefense)
  98617|Loveletter
  98789|Loveletter.ad
  99096|LoveLetter.CM (Panda)
  99096|LoveLetter.CM@MM (F-Secure)
   4112|Lover.708
 100547|Lovesan
 119746|LoveYou.src
 107724|Mustlove joke
 106289|MyLove
  98655|Newlove
  99973|Onelove
  10419|PE_FUNLOVE.4099 (Trend)
 100716|Spyware-LoverSpy
 100716|Spyware-LoverSpy.demo
  98617|Troj/LoveLet-A
 100716|TrojanSpy.Win32.LoverSpy.a (AVP)
  98617|VBS.Loveletter.a
  99118|VBS.LoveLetter.CQ (NAV)
  98655|VBS.Loveletter.FW.A
  98623|VBS.Loveletter.G (NAV)
  98623|VBS.Loveletter.J (NAV)
  98626|VBS.LoveLetter.K (NAV)
  98627|VBS.LoveLetter.M (NAV)
  98633|VBS.LoveLetter.P (NAV)
  98631|VBS.LoveLetter.Q (NAV)
  98630|VBS.LoveLetter.R (NAV)
  98617|VBS/LoveLet-A
  98617|VBS/LoveLet-B
  98789|VBS/Lovelet-BD
  98617|VBS/LoveLet-C
  99006|VBS/Lovelet-CD (Sophos)
  98621|VBS/LoveLet-D
  98617|VBS/LoveLet-E
  98626|VBS/LoveLet-F (Sophos)
  98639|VBS/LoveLet-H (Sophos)
  99096|VBS/LoveLetter-CM (Sophos)
  98617|VBS/Loveletter.a
  98624|VBS/Loveletter.ab
  98646|VBS/Loveletter.ac
  98647|VBS/Loveletter.ad
  98617|VBS/Loveletter.ae
  98617|VBS/Loveletter.af
  98617|VBS/Loveletter.ag
  98617|VBS/Loveletter.ah
  98617|VBS/Loveletter.ai
  98657|VBS/Loveletter.aj
  98676|VBS/Loveletter.ar
  98684|VBS/Loveletter.as
  98617|VBS/Loveletter.b
  98789|VBS/Loveletter.bd
  98617|VBS/Loveletter.be
 116328|VBS/Loveletter.be@MM
  98833|VBS/LoveLetter.bi
  98684|VBS/Loveletter.bj
  98833|VBS/Loveletter.bk
  98617|VBS/Loveletter.c
  99006|VBS/Loveletter.CD@MM
  99050|VBS/Loveletter.CH@mm
  99096|VBS/LoveLetter.CN@MM
  99118|VBS/LoveLetter.cq@MM
 106370|VBS/LoveLetter.cu@MM
 116687|VBS/Loveletter.cy
  98617|VBS/Loveletter.d
  98621|VBS/Loveletter.e
  98622|VBS/Loveletter.f
  98623|VBS/Loveletter.g
 106369|VBS/LoveLetter.gen
  98624|VBS/Loveletter.h
  98630|VBS/LoveLetter.H (CAI)
 115487|VBS/LoveLetter.h@MM
  98625|VBS/Loveletter.i
 119340|VBS/LoveLetter.ini
  98626|VBS/Loveletter.j
  98631|VBS/LoveLetter.J (CAI)
  98627|VBS/Loveletter.k
  98629|VBS/Loveletter.L
  98630|VBS/Loveletter.m
  98631|VBS/Loveletter.n
  98632|VBS/Loveletter.o
  98633|VBS/Loveletter.p
  98634|VBS/Loveletter.q
  98636|VBS/Loveletter.r
  98631|VBS/Loveletter.s
  98637|VBS/Loveletter.t
  98638|VBS/Loveletter.u
  98629|VBS/Loveletter.v
  98639|VBS/Loveletter.w
  98617|VBS/Loveletter.worm
  98640|VBS/Loveletter.x
  98641|VBS/Loveletter.y
  98645|VBS/Loveletter.z
  98617|VBS/Loveletter@MM
  98655|VBS/Newlove@MM
  98617|VBS_LoveLetter
  10419|W32.FunLove.4099 (NAV)
  10419|W32.Funlove.int (NAV)
 116463|W32/Fakelove
 116464|W32/Fakelove.dr
 107927|W32/FunLove
 126386|W32/FunLove.3626
  10419|W32/FunLove.4099
  10419|W32/Funlove.4099.dr (VirusScan)
 100520|W32/Funlove.apd
  10419|W32/FunLove.app
 100520|W32/Funlove.app
  10419|W32/FunLove.dr
 112429|W32/FunLove.dr
 107926|W32/FunLove.gen
  10419|W32/FunLove.gen (VirusScan)
 100085|W32/Lovegate
 100272|W32/Lovelorn.dr
 115970|W32/Lovelorn.dr
 100272|W32/Lovelorn@MM
 101120|W32/Lovero.worm
  10511|W95.LoveSong.988
  10511|W95.LoveSong.998
  10419|W95/FunLove.4099 (F-Prot)
  10500|W95/Love.988
 111433|W95/Lovesong
 105766|W95/Lovesong.dr
  99492|W97M_Makelove.A
  10419|Win32.FunLove.4070 (AVP)
  98845|WIN32.ILOVEBRITNEY
 100716|Win32/Spy.LoverSpy.A (NOD)
  10511|Win95/Lovesong
 101123|WORM_LOVEGATE.Q (Trend)
 100272|WORM_LOVELORN.A (Trend)
:arrow: Listedeki seçilen satırdaki virüs bilgisi web sayfasına erişim için de basitçe şunu kullanabilirsin...

Kod: Tümünü seç

Var
  Satir : String;
begin
  If ListBox1.ItemIndex >= 0 then
  begin
    Satir := Format('http://vil.nai.com/vil/content/v_%s.htm', [Trim(Copy(ListBox1.Items[ListBox1.ItemIndex], 1, Pos('|', ListBox1.Items[ListBox1.ItemIndex])-1) )]);
    ShellExecute(0, 'open', 'IExplore.exe', PChar(Satir) , '', SW_Normal);
  end
end;

- Çalışmalarında başarılar...
Resim
Resim ....Resim
must68
Üye
Mesajlar: 21
Kayıt: 14 Tem 2003 12:28

Mesaj gönderen must68 »

Verilen kimlik no uygulamasını çalıştırdığımda, aldığım sonuç sayfa bulunamadı oluyor. oysa IE ile sayfaya erişiyor ve işlem yapabiliyorum.

Aslında aynı sorun kendi uygulamamda da var. Ama orda bilgi post ediltikten sonra başka bir sayfaya yönleniyor ve sonuçlar orda görünüyordu? Yazdığım uygulamada geriye boş bir ekran dönmesine rağmen, bilgi işlenmiş oluyordu.

Aynı hatayı alan yada sorunu tahmin eden varmı?
Kullanıcı avatarı
sadettinpolat
Moderator
Mesajlar: 2131
Kayıt: 07 Ara 2003 02:51
Konum: Ankara
İletişim:

Mesaj gönderen sadettinpolat »

yukarıdaki kodların düzgün çalışıyor olması gerekir.
gözünüzden kaçan ufak bir hata var bence veya başka bir sorun.

Unit1.pas

Kod: Tümünü seç

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, OleCtrls, SHDocVw,comobj,MidItems,MSHTML,ActiveX,
  ComCtrls,inifiles, Spin;

    const cntMaxIlceSayisi = 7;



type
  TForm1 = class(TForm)
    Button1: TButton;
    Memo1: TMemo;
    ListView1: TListView;
    Button2: TButton;
    Label1: TLabel;
    Button3: TButton;
    WebBrowser1: TWebBrowser;
    ComboBox1: TComboBox;
    edtAd: TEdit;
    Label2: TLabel;
    edtSoyad: TEdit;
    Label3: TLabel;
    edtCiltNo: TEdit;
    Label4: TLabel;
    edtAileSiraNo: TEdit;
    Label5: TLabel;
    edtSiraNo: TEdit;
    Label6: TLabel;
    Label7: TLabel;
    seCiltNoStart: TSpinEdit;
    seCiltNoEnd: TSpinEdit;
    Label8: TLabel;
    seAileSiraNoStart: TSpinEdit;
    seAileSiraNoEnd: TSpinEdit;
    Label9: TLabel;
    seSiraNoStart: TSpinEdit;
    seSiraNoEnd: TSpinEdit;
    Label10: TLabel;
    Memo2: TMemo;
    procedure Button1Click(Sender: TObject);
    procedure WebBrowser1DownloadComplete(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Button3Click(Sender: TObject);
    procedure WebBrowser1DocumentComplete(Sender: TObject;
      const pDisp: IDispatch; var URL: OleVariant);
    procedure FormDestroy(Sender: TObject);
    procedure ComboBox1Change(Sender: TObject);
    procedure FormShow(Sender: TObject);
  private
    { Private declarations }
  public
  ini :TIniFile;

   Dosya:Integer;
  cik,SayfaYuklendiMi :Boolean;
  DiziIlce: array [0..cntMaxIlceSayisi] of integer;
  Function GetTCKimlikNo(Ilce,Ad,Soyad,CiltNo,AileSiraNo,SiraNo:String):String;overload;
  Function GetTCKimlikNo(Ilce,Ad,Soyad,BabaAdi,AnneAdi,DogumYili,Cinsiyet:String):String; overload;
  procedure DegerleriOku();
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

function WB_SaveHTMLCode(WebBrowser: TWebBrowser; const FileName: TFileName): Boolean; 
var 
  ps: IPersistStreamInit; 
  fs: TFileStream; 
  sa: IStream; 
begin 
  ps := WebBrowser.Document as IPersistStreamInit; 
  fs := TFileStream.Create(FileName, fmCreate); 
  try 
    sa := TStreamAdapter.Create(fs, soReference) as IStream; 
    Result := Succeeded(ps.Save(sa, True));
  finally 
    fs.Free; 
  end; 
end; 


function WB_GetHTMLCode(WebBrowser: TWebBrowser; ACode: TStrings): Boolean; 
var 
  ps: IPersistStreamInit; 
  ss: TStringStream; 
  sa: IStream; 
  s: string; 
begin 
  ps := WebBrowser.Document as IPersistStreamInit; 
  s := ''; 
  ss := TStringStream.Create(s); 
  try 
    sa := TStreamAdapter.Create(ss, soReference) as IStream; 
    Result := Succeeded(ps.Save(sa, True)); 
    if Result then ACode.Add(ss.Datastring); 
  finally 
    ss.Free; 
  end;
end; 



 procedure TForm1.Button1Click(Sender: TObject);
var
//  i: Integer;
//  EncodedStr: string;
//  Header: OleVariant;
//  Post: OleVariant;
//  document: IHTMLDocument2;
//  tr: IHTMLTxtRange; //TextRange Object
//  ab:pchar;
//  HTMLDocument: IHTMLDocument2;
//  PersistFile: IPersistFile;
//  tmp:string;
//  Hangisi :Boolean;
  CiltNo,aileSiraNo,SiraNo :integer;
  TCKimlikNo:String;
begin
  dosya := 0;
  Cik := False;
          ini.WriteString('Degerler'+IntToStr(ComboBox1.ItemIndex),'CiltNoEnd',IntToStr(seCiltNoEnd.Value));
          ini.WriteString('Degerler'+IntToStr(ComboBox1.ItemIndex),'AileSıraNoEnd',IntToStr(seAileSiraNoEnd.Value));
          ini.WriteString('Degerler'+IntToStr(ComboBox1.ItemIndex),'SiraNoEnd',IntToStr(seSiraNoEnd.Value));
//          ini.WriteString('Degerler'+IntToStr(ComboBox1.ItemIndex),'Ilçe',IntToStr(DiziIlce[Ilce]));
          ini.UpdateFile;

  // Make the post string URL encoded
 { EncodedStr := 'ilce='+
                '&ad1='+
                '&soyad1='+
                '&babaadi='+
                '&anneadi='+
                '&yil='+
                '&cinsiyet=E'+
                '&go1=Kimlik Numaramı Bul';
                Hangisi := True; }

  For CiltNo := seCiltNoStart.Value to seCiltNoEnd.Value do
  Begin
    For aileSiraNo := seAileSiraNoStart.Value to seAileSiraNoEnd.Value do
    Begin
      For SiraNo := seSiraNoStart.Value to seSiraNoEnd.Value do
      Begin
        label1.Caption := ' İlçe =' + IntToStr(DiziIlce[ComboBox1.ItemIndex]) +
                          ' Cilt No =' + IntToStr(CiltNo) +
                          ' aileSiraNo = ' + IntToStr(aileSiraNo) +
                          ' SiraNo = ' +IntToStr(SiraNo);

          SayfaYuklendiMi := False;
          edtCiltNo.Text := inttostr(ciltno);
          edtAileSiraNo.Text := inttostr(aileSiraNo);
          edtSiraNo.Text := inttostr(SiraNo);

          TCKimlikNo :=GetTCKimlikNo(IntToStr(DiziIlce[ComboBox1.ItemIndex]),
                                     edtAd.Text,
                                     edtSoyad.Text,
                                     IntToStr(CiltNo),
                                     IntToStr(aileSiraNo),
                                     IntToStr(SiraNo));
          ini.WriteString('Degerler'+IntToStr(ComboBox1.ItemIndex),'CiltNo',IntToStr(CiltNo));
          ini.WriteString('Degerler'+IntToStr(ComboBox1.ItemIndex),'AileSıraNo',IntToStr(aileSiraNo));
          ini.WriteString('Degerler'+IntToStr(ComboBox1.ItemIndex),'SiraNo',IntToStr(SiraNo));
          ini.WriteString('Degerler'+IntToStr(ComboBox1.ItemIndex),'Ilçe',IntToStr(DiziIlce[ComboBox1.ItemIndex]));
          ini.UpdateFile;

        if TCKimlikNo <> '' Then
        Begin
           With ListView1.Items.Add do
           Begin
              Caption := TCKimlikNo;
              SubItems.Add(IntToStr(DiziIlce[ComboBox1.ItemIndex]));
              memo2.Lines.Clear;
              if FileExists('Sonuclar.txt') = False Then
                memo2.Lines.SaveToFile('Sonuclar.txt');
              memo2.Lines.LoadFromFile('Sonuclar.txt');
              memo2.Lines.Add(TCKimlikNo);
              memo2.Lines.SaveToFile('Sonuclar.txt');
              SetForegroundWindow(Handle);
              Application.Title := Application.Title + ' Müjde Buldum Bişeler'; 
           end;
        End;
         Application.ProcessMessages;
        If Cik Then Halt;

      End;//For Sirano
    End; //for aileSiraNo
  End; //for ciltNo
label1.Caption := 'Islem Bitti....';
end;

procedure TForm1.WebBrowser1DownloadComplete(Sender: TObject);
begin
//      SayfaYuklendiMi := True;
end;

procedure TForm1.FormCreate(Sender: TObject);
//var
//i:integer;
begin
ini := TIniFile.Create(ExtractFilePath(Application.ExeName) + 'Degerler.ini');



//DiziIlce[0] := 1416; // yenimahalle
DiziIlce[0] := 1716; // yenimahalle
DiziIlce[1] := 1747; // sincan
DiziIlce[2] := 1746; // mamak
DiziIlce[3] := 1745; // keçiören
DiziIlce[4] := 1130; // altındağ
DiziIlce[5] := 1231; // çankaya
DiziIlce[6] := 1922; // etimesgut
DiziIlce[7] := 1416; // ispir

//<option value="1872">AKYURT</option>
//<option value="1130">ALTINDAĞ</option>
//<option value="1157">AYAŞ</option>
//<option value="1167">BALA</option>
//<option value="1187">BEYPAZARI</option>
//<option value="1227">ÇAMLIDERE</option>
//<option value="1231">ÇANKAYA</option>
//<option value="1260">ÇUBUK</option>
//<option value="1302">ELMADAĞ</option>
//<option value="1922">ETİMESGUT</option>
//<option value="1924">EVREN</option>
//<option value="1744">GÖLBAŞI</option>
//<option value="1365">GÜDÜL</option>
//<option value="1387">HAYMANA</option>
//<option value="1427">KALECİK</option>
//<option value="1815">KAZAN</option>
//<option value="1745">KEÇİÖREN</option>
//<option value="1473">KIZILCAHAMAM</option>
//<option value="1746">MAMAK</option>
//<option value="1539">NALLIHAN</option>
//<option value="1578">POLATLI</option>
//<option value="1747">SİNCAN</option>
//<option value="1658">ŞEREFLİKOÇHİSAR</option>
//<option value="1723">YENİMAHALLE</option>


end;

function TForm1.GetTCKimlikNo(Ilce,Ad, Soyad, CiltNo, AileSiraNo,
  SiraNo: String): String;
var
  i: Integer;
  EncodedStr: string;
  Header,abc: OleVariant;
  Post: OleVariant;
//  tr: IHTMLTxtRange;
//  HTMLDocument: IHTMLDocument2;
//  PersistFile: IPersistFile;
  tmp:string;
begin
Result := '';
EncodedStr := 'ilce='+Ilce+
              '&ad='+Ad+
              '&soyad='+Soyad+
              '&cilt='+CiltNo+
              '&hane='+AileSiraNo+
              '&sira='+SiraNo+
              '&go=Kimlik Numaramı Bul';
Post := VarArrayCreate([0, Length(EncodedStr) - 1], varByte);

for I := 1 to Length(EncodedStr) do
  Post[I - 1] := Ord(EncodedStr[I]);

Header := 'Content-Type: application/x-www-form-urlencoded' + #10#13;


//WebBrowser1 := TWebBrowser.Create(self);

//WebBrowser1.Stop;
//while WebBrowser1.Busy do
 // Application.ProcessMessages;
// navNoHistory	2
//navNoReadFromCache	4

            abc := navNoHistory or navNoReadFromCache or navNoWriteToCache;
       //abc := navOpenInNewWindow;
WebBrowser1.Navigate('http://tckimlik.nvi.gov.tr/pls/kimlik/kimlik', abc,
                      EmptyParam, Post, Header);

while WebBrowser1.Busy do
  Application.ProcessMessages;

while not SayfaYuklendiMi do
  Application.ProcessMessages;


memo1.Lines.Clear;
//HTMLDocument := WebBrowser1.Document as IHTMLDocument2;
WB_GetHTMLCode(WebBrowser1,memo1.Lines);

//WB_SaveHTMLCode(WebBrowser1,ExtractFilePath(Application.ExeName)+'SavedFile'+inttostr(ComboBox1.ItemIndex)+'.html');


//memo1.Lines.SaveToFile(ExtractFilePath(Application.ExeName)+inttostr(dosya)+'.txt');
//inc(dosya);

//PersistFile  := HTMLDocument as IPersistFile;
//deletefile(ExtractFilePath(Application.ExeName)+'SavedFile.html');

//PersistFile.Save(StringToOleStr(ExtractFilePath(Application.ExeName)+'SavedFile.html'), System.True);

//while PersistFile.SaveCompleted(StringToOleStr(ExtractFilePath(Application.ExeName)+'SavedFile.html')) <> S_OK do
//    Application.ProcessMessages;

//memo1.Lines.LoadFromFile(ExtractFilePath(Application.ExeName)+'SavedFile'+inttostr(ComboBox1.ItemIndex)+'.html');


for i:=0 to memo1.Lines.Count -1 do
Begin
  if pos('Yukarıda bilgileri bulunan',memo1.Lines[i]) >0 Then
  Begin
    tmp := memo1.Lines[i];
    //                  ize="5" color="#FF0000">24430******</
    //olor="#FF0000" size="5">24430******</font></td>
    delete(tmp,1,pos('color="#FF0000"',tmp)+15+9);
    delete(tmp,12,length(tmp));
    Result := tmp;
  End;
End;
end;

function TForm1.GetTCKimlikNo(Ilce,Ad, Soyad, BabaAdi, AnneAdi, DogumYili,
  Cinsiyet: String): String;
//var
//  i: Integer;
//  EncodedStr: string;
//  Header: OleVariant;
//  Post: OleVariant;
//  document: IHTMLDocument2;
//  tr: IHTMLTxtRange; //TextRange Object
//  ab:pchar;
////  HTMLDocument: IHTMLDocument2;
//  PersistFile: IPersistFile;
//  tmp:string;
//  Hangisi :Boolean;
//  Ilce,CiltNo,aileSiraNo,SiraNo :integer;
begin
//
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
close;

end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Cik := True;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
ShowMessage(GetTCKimlikNo('xxx','xxx','xxx','xx','x','x'));
end;

procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;
  const pDisp: IDispatch; var URL: OleVariant);
begin
SayfaYuklendiMi := True;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
ini.Free;
end;

procedure TForm1.DegerleriOku;
begin
edtCiltNo.Text := ini.ReadString('Degerler'+IntToStr(ComboBox1.ItemIndex),'CiltNo','1');
edtAileSiraNo.Text := ini.ReadString('Degerler'+IntToStr(ComboBox1.ItemIndex),'AileSıraNo','1');
edtSiraNo.Text := ini.ReadString('Degerler'+IntToStr(ComboBox1.ItemIndex),'SiraNo','1');
//ini.ReadString('Degerler'+IntToStr(ComboBox1.ItemIndex),'Ilçe','1');
seCiltNoStart.Text := edtCiltNo.Text;
seAileSiraNoStart.Text := edtAileSiraNo.Text;
seSiraNoStart.Text := edtSiraNo.Text;

seCiltNoEnd.Text := ini.ReadString('Degerler'+IntToStr(ComboBox1.ItemIndex),'CiltNoEnd','100');
seAileSiraNoEnd.Text := ini.ReadString('Degerler'+IntToStr(ComboBox1.ItemIndex),'AileSıraNoEnd','100');
seSiraNoEnd.Text := ini.ReadString('Degerler'+IntToStr(ComboBox1.ItemIndex),'SiraNoEnd','100');
Application.Title := 'TC Kimlik Bul ['+IntToStr(ComboBox1.ItemIndex)+']';

end;

procedure TForm1.ComboBox1Change(Sender: TObject);
begin
DegerleriOku;
caption := 'TC Kimlik Bul [' + inttostr(ComboBox1.ItemIndex) + ']';
end;

procedure TForm1.FormShow(Sender: TObject);
begin
ComboBox1.ItemIndex :=0;
DegerleriOku;
caption := 'TC Kimlik Bul [' + inttostr(ComboBox1.ItemIndex) + ']';
end;

end.


Unit1.dfm

Kod: Tümünü seç

object Form1: TForm1
  Left = 78
  Top = 157
  BorderIcons = [biSystemMenu, biMinimize]
  BorderStyle = bsSingle
  Caption = 'Form1'
  ClientHeight = 436
  ClientWidth = 393
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'MS Sans Serif'
  Font.Style = []
  OldCreateOrder = False
  Position = poScreenCenter
  OnClose = FormClose
  OnCreate = FormCreate
  OnDestroy = FormDestroy
  OnShow = FormShow
  PixelsPerInch = 96
  TextHeight = 13
  object Label1: TLabel
    Left = 16
    Top = 416
    Width = 361
    Height = 13
    AutoSize = False
    Caption = 'Label1'
  end
  object Label2: TLabel
    Left = 53
    Top = 56
    Width = 19
    Height = 13
    Alignment = taRightJustify
    Caption = 'Ad :'
  end
  object Label3: TLabel
    Left = 36
    Top = 88
    Width = 36
    Height = 13
    Alignment = taRightJustify
    Caption = 'Soyad :'
  end
  object Label4: TLabel
    Left = 35
    Top = 120
    Width = 37
    Height = 13
    Alignment = taRightJustify
    Caption = 'Cilt No :'
  end
  object Label5: TLabel
    Left = 11
    Top = 146
    Width = 61
    Height = 13
    Alignment = taRightJustify
    Caption = 'Aile S'#305'ra No :'
  end
  object Label6: TLabel
    Left = 31
    Top = 170
    Width = 41
    Height = 13
    Alignment = taRightJustify
    Caption = 'S'#305'ra No :'
  end
  object Label7: TLabel
    Left = 49
    Top = 30
    Width = 23
    Height = 13
    Alignment = taRightJustify
    Caption = #304'l'#231'e :'
  end
  object Label8: TLabel
    Left = 287
    Top = 120
    Width = 9
    Height = 13
    Alignment = taRightJustify
    Caption = 'to'
  end
  object Label9: TLabel
    Left = 287
    Top = 146
    Width = 9
    Height = 13
    Alignment = taRightJustify
    Caption = 'to'
  end
  object Label10: TLabel
    Left = 287
    Top = 170
    Width = 9
    Height = 13
    Alignment = taRightJustify
    Caption = 'to'
  end
  object Memo1: TMemo
    Left = 208
    Top = 24
    Width = 529
    Height = 33
    Lines.Strings = (
      'Memo1')
    ScrollBars = ssBoth
    TabOrder = 1
    Visible = False
    WordWrap = False
  end
  object Button1: TButton
    Left = 218
    Top = 192
    Width = 75
    Height = 25
    Caption = 'Ara'
    TabOrder = 0
    OnClick = Button1Click
  end
  object ListView1: TListView
    Left = 16
    Top = 344
    Width = 361
    Height = 65
    Columns = <
      item
        Caption = 'TCkimlikNo'
        Width = 200
      end
      item
        Caption = #304'l'#231'e'
        Width = 150
      end>
    TabOrder = 2
    ViewStyle = vsReport
  end
  object Button2: TButton
    Left = 298
    Top = 192
    Width = 75
    Height = 25
    Caption = 'Kapat'
    TabOrder = 3
    OnClick = Button2Click
  end
  object Button3: TButton
    Left = 664
    Top = 64
    Width = 75
    Height = 25
    Caption = 'Button3'
    TabOrder = 4
    Visible = False
    OnClick = Button3Click
  end
  object WebBrowser1: TWebBrowser
    Left = 16
    Top = 232
    Width = 361
    Height = 105
    TabOrder = 5
    OnDownloadComplete = WebBrowser1DownloadComplete
    OnDocumentComplete = WebBrowser1DocumentComplete
    ControlData = {
      4C0000004F250000DA0A00000000000000000000000000000000000000000000
      000000004C000000000000000000000001000000E0D057007335CF11AE690800
      2B2E126208000000000000004C0000000114020000000000C000000000000046
      8000000000000000000000000000000000000000000000000000000000000000
      00000000000000000100000000000000000000000000000000000000}
  end
  object ComboBox1: TComboBox
    Left = 80
    Top = 24
    Width = 123
    Height = 21
    Style = csDropDownList
    ItemHeight = 13
    ItemIndex = 0
    TabOrder = 6
    Text = '1716; // yenimahalle'
    OnChange = ComboBox1Change
    Items.Strings = (
      '1716; // yenimahalle'
      '1747; // sincan'
      '1746; // mamak'
      '1745; // ke'#231'i'#246'ren'
      '1130; // alt'#305'nda'#287
      '1231; // '#231'ankaya'
      '1922; // etimesgut'
      '1416; //ispir')
  end
  object edtAd: TEdit
    Left = 80
    Top = 52
    Width = 121
    Height = 21
    TabOrder = 7
    Text = 'a'
  end
  object edtSoyad: TEdit
    Left = 80
    Top = 84
    Width = 121
    Height = 21
    TabOrder = 8
    Text = 'a'
  end
  object edtCiltNo: TEdit
    Left = 80
    Top = 116
    Width = 121
    Height = 21
    TabOrder = 9
    Text = '1'
  end
  object edtAileSiraNo: TEdit
    Left = 80
    Top = 142
    Width = 121
    Height = 21
    TabOrder = 10
    Text = '1'
  end
  object edtSiraNo: TEdit
    Left = 80
    Top = 166
    Width = 121
    Height = 21
    TabOrder = 11
    Text = '1'
  end
  object seCiltNoStart: TSpinEdit
    Left = 208
    Top = 115
    Width = 73
    Height = 22
    MaxValue = 0
    MinValue = 0
    TabOrder = 12
    Value = 1
  end
  object seCiltNoEnd: TSpinEdit
    Left = 303
    Top = 115
    Width = 73
    Height = 22
    MaxValue = 0
    MinValue = 0
    TabOrder = 13
    Value = 100
  end
  object seAileSiraNoStart: TSpinEdit
    Left = 208
    Top = 141
    Width = 73
    Height = 22
    MaxValue = 0
    MinValue = 0
    TabOrder = 14
    Value = 1
  end
  object seAileSiraNoEnd: TSpinEdit
    Left = 303
    Top = 141
    Width = 73
    Height = 22
    MaxValue = 0
    MinValue = 0
    TabOrder = 15
    Value = 100
  end
  object seSiraNoStart: TSpinEdit
    Left = 208
    Top = 165
    Width = 73
    Height = 22
    MaxValue = 0
    MinValue = 0
    TabOrder = 16
    Value = 1
  end
  object seSiraNoEnd: TSpinEdit
    Left = 303
    Top = 165
    Width = 73
    Height = 22
    MaxValue = 0
    MinValue = 0
    TabOrder = 17
    Value = 100
  end
  object Memo2: TMemo
    Left = 216
    Top = 64
    Width = 57
    Height = 25
    Lines.Strings = (
      'Memo2')
    TabOrder = 18
    Visible = False
  end
end
must68
Üye
Mesajlar: 21
Kayıt: 14 Tem 2003 12:28

Mesaj gönderen must68 »

kod çalışıyor. (hatalı oluğunu söylememiştim zaten)
ben bir hata yapmışım. ilçe kodu yerine ismini direkt girmiştim. bu durumda sayfa bulunamadı hatası veriyor.
Hatanın yansımasının bu olmaması gerekli diye düşünüyorum. Girilen bilgilerin yanlış olduğu geri döndürülebilirdi.

HTML bilgim yok. sayfadaki veri girişlerinin tiplerini açıklayan dökümanlara ihtiyacım var.

Yardımcı olursanız sevinirim.
Cevapla