Sayın Emin_AS halletti teşekkürlerimle kodlarda burada:
Kod: Tümünü seç
Emin_AS'tan Alıntıdır
Form üzerinde şunlar var.
Button1 - Bilgileri alma olayı tetikleniyor
Edit1 - Bilgileri alınacak kişinin idno su,
ValuelistEditor1 bilgilerin gösterilecegi yer,
idHttp1 : Bilgilerin çekildiği component.
--------------------------------
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
IdHTTP, Grids, ValEdit;
type
TForm1 = class(TForm)
ValueListEditor1: TValueListEditor;
IdHTTP1: TIdHTTP;
Edit1: TEdit;
Button1: TButton;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure HtmlParse(s: string);
end;
var
Form1: TForm1;
implementation
uses StrUtils;
{$R *.dfm}
procedure TForm1.HtmlParse(s: string);
var
i : integer;
z1,z2,z3 : integer;
s1,s2 : string;
begin
z1:=pos('pnlDetaylar',s);
if z1 > 0 then
begin
delete(s,1,z1+2); // pnldetaylara kadar olan bölüm siliniyor.
z1:=pos('</table>',s);
if z1 > 0 then s:=copy(s,1,z1);
// Başlık bilgileri <td><b> ile başlıyor
s:=StringReplace(s,'<td><b>','{',[rfReplaceAll]);
// Abone bilgileri ise </b></td><td> ile başlıyor
s:=StringReplace(s,'</b></td><td>','!',[rfReplaceAll]);
// Bilgiler bu şekilde bitiyor
s:=StringReplace(s,'</td>','}',[rfReplaceAll]);
(* Elimize aşagıdaki gibi bir bilgi var.
Artık tek yapmamız gereken { ! arasında başlıgı ve ! } arasındaki bilgiyi almak
Detaylar" cellpadding="0" cellspacing="0" border="0" width="100%"><tr><td>
<center><table border="1"><tr style="background-color:#DDDDDD">
{Abone No.!00000000}</tr><tr>{Sözleşme No.!100}</tr>
<tr style="background-color:#DDDDDD">{Abone Referans No.!100000}</tr>
<tr>{Adı Soyadı / Ünvanı!aaa aaa}</tr>
<tr style="background-color:#DDDDDD">{Sözleşme Tarihi!01/01/1960}</tr><tr>{Abonelik Türü!Standart}</tr>
<tr style="background-color:#DDDDDD">{Abone Tipi!TİCARETHANELER}</tr><tr>{Fatura Ünvanı!}</tr>
<tr style="background-color:#DDDDDD">{Fatura Adresi! }</tr><tr>{Vergi Dairesi / No.! / }</tr>
<tr style="background-color:#DDDDDD">{Telefon! / }</tr><tr>{Faks!}</tr>
<tr style="background-color:#DDDDDD">{E - Posta!}</tr><tr>{Yazışma Adresi!ESKİ SANAYİ MH. 3.CD. 14.SK. 14/ }</tr>
<tr style="background-color:#DDDDDD">{Sayaç Durumu!Bağlı}</tr><tr>{Abonelik Durumu!Açık / }</tr>
<tr style="background-color:#DDDDDD">{Aktif Sayaç!MAKEL 105223}</tr><tr>{Trafo Gücü!0 kVA}</tr>
<tr style="background-color:#DDDDDD">{Sözleşme Gücü!0 kW}</tr><tr>{Işık Gücü!0 W}</tr>
<tr style="background-color:#DDDDDD">{Motor Gücü!1250 W}</tr><
*)
z1 := ValueListEditor1.RowCount-1;
if z1 > 1 then
for i:= z1 downto 1 do
ValueListEditor1.DeleteRow(i);
ValueListEditor1.TitleCaptions.Add('Başlık');
ValueListEditor1.TitleCaptions.Add('Bilgi');
repeat
z1:=pos('{',s);
z2:=pos('!',s);
z3:=pos('}',s);
if (z1 >0) and (z2>0) and (z3>0) then
begin
s1:=copy(s,z1+1,z2-z1-1); // 1 ekleyip, 1 çıkarıyoruz. Çünkü { karakteri
s2:=copy(s,z2+1,z3-z2-1); // gösterilsin istemiyoruz.
ValueListEditor1.InsertRow(s1,s2,True);
delete(s,1,z3);
end;
until z1 = 0;
end else
ShowMessage(' Bilgi tanınmıyor.');
end;
procedure TForm1.Button1Click(Sender: TObject);
const
sorgu_url = 'www.siteadi.com';
var
sl : Tstringlist;
begin
try
sl:=Tstringlist.Create;
try
Htmlparse(IdHTTP1.Post(sorgu_url+Edit1.Text,sl));
finally
sl.Free;
end;
except
on E:Exception do showmessage('Hata : '+E.message);
end;
end;