asp sayfadaki bilgileri çekme..
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
-
- Üye
- Mesajlar: 1
- Kayıt: 15 Şub 2004 12:41
asp sayfadaki bilgileri çekme..
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..
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
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...
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...

- 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



- Çalışmalarınızda başarılar...

Editten arama yaptırmak.
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?
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...
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...
Merhabalar...
- Sayfayı sizin için inceledim...
- Site içi arama scripti... ... şeklinde... GET ile aramaya izin verilmekte.
- Virus Arama scripti ki sanıyorum bahsettiğiniz buydu bir kademe zor.
...şeklindeymiş fakat GET ile aramaya izin verilmediğinden TWebBrowser vb. bileşenlerle bu sayfaya POST yapmanız gerekiyor...
- 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
- 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
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...
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...
- sadettinpolat
- Moderator
- Mesajlar: 2131
- Kayıt: 07 Ara 2003 02:51
- Konum: Ankara
- İletişim:
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...
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;
- sadettinpolat
- Moderator
- Mesajlar: 2131
- Kayıt: 07 Ara 2003 02:51
- Konum: Ankara
- İletişim:
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;
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ı..
.. Tabi her zaferin bir bedeli olmalı... Bizde ödeyelim bedelini..
ama kodların tamamını göndermemişsin. BAri gönderseydin de hiç komut yazma zahmetinde bulunmasaydım.
Çok teşekkür ederim arkadaşım.
Eğer yapamazsam yine size dönerim haberiniz olsun.



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...
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...
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...
Kullanımı :
Formda bir adet TMemo vardı ya, işte o memo'ya HTML Text'i attığını varsayıyorum...
Ek olarak Parse edilmiş veriyi yansıtacağın, bir adet TListBox koy...
Sonuç :
Listedeki seçilen satırdaki virüs bilgisi web sayfasına erişim için de basitçe şunu kullanabilirsin...
- Çalışmalarında başarılar...
- 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;


Kod: Tümünü seç
McAfeeParse(Memo1.Lines, ListBox1.Items);

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)

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...
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ı?
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ı?
- sadettinpolat
- Moderator
- Mesajlar: 2131
- Kayıt: 07 Ara 2003 02:51
- Konum: Ankara
- İletişim:
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
Unit1.dfm
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
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.
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.