charles adlı üyeden alıntı: mesajı görüntüle
sayfanın kaynagını xml usingini kullanarak bir değişkende tut sonra ordan xml i tekrar memoya okutabılırsın


Bunu indyhttp, ipwhttp gibi bileşenlerin get yöntemiyle kolayca yapabilirsiniz. Aşağıda yazdığım fonksiyon bu işlemi Windows'un/Winsock'un kök yordamlarıyla halleder. Böylece bileşenlerin kaprislerinden sıyrılırsınız:

uses satırına:
urlmon ve shellapi ekleyin.


function BNDSitecek(const fileURL, FileName: String): boolean;
const
Buffersize = 1024;
var
hSession, hURL: HInternet;
Buffer: array[1..BufferSize] of Byte;
BufferLen: DWORD;
f: File;
sAppName: string;
begin
result := false;
sAppName := ExtractFileName(Application.ExeName) ;
hSession := InternetOpen(PChar(sAppName), INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0) ;
try
hURL := InternetOpenURL(hSession, PChar(fileURL), nil, 0, 0, 0) ;
try
AssignFile(f, FileName) ;
Rewrite(f,1) ;
repeat
InternetReadFile(hURL, @Buffer, SizeOf(Buffer), BufferLen) ;
BlockWrite(f, Buffer, BufferLen)
until BufferLen = 0;
CloseFile(f) ;
result := True;
finally
InternetCloseHandle(hURL)
end
finally
InternetCloseHandle(hSession)
end
end;



Örnek kullanımı şöyle:


procedure TForm2.Button1Click(Sender: TObject);
var
site, kodlar:string;
begin
site:='http://www.bnd.com.tr';
kodlar:=extractfilepath(application.exename)+'bnd. bnd';
if BNDSitecek(site, kodlar)=true then
begin
memo1.lines.loadfromfile(extractfilepath(applicati on.exename)+'bnd.bnd');
showmessage(site+' sitesini memo bileşeni içine başarıyla aktardım.')
else
showmessage(site+' sitesini bulamadım veya aktaramadım. Internet bağlantısını, programın bulunduğu dizinin yazılabilir olup olmadığını kontrol ediniz.');

end;