doyuk
asked on
getting Source Code
I want to get the source code of a website and put it into a textbox?
Any ideas?
Any ideas?
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
should be http://www.indyproject.org/ :)
or using the ICS component http://overbyte.delphicenter.com/ :
HttpCli1.URL := 'url';
HttpCli1.RcvdStream := TMemoryStream.Create;
HttpCli1.Get;
Memo1.Lines.LoadFromStream (HttpCli1. RcvdStream );
HttpCli1.RcvdStream.Destro y;
HttpCli1.RcvdStream := nil;
HttpCli1.URL := 'url';
HttpCli1.RcvdStream := TMemoryStream.Create;
HttpCli1.Get;
Memo1.Lines.LoadFromStream
HttpCli1.RcvdStream.Destro
HttpCli1.RcvdStream := nil;
ASKER
Thanks. It works...
doyuk, you could also use this function to get rid of all those components:
{ uses WinInet }
function LoadFromURL(URL: String): String;
var
hSession, hURL: hInternet;
Buffer: array[0..1023] of Byte;
BufferLength: DWord;
Stream: TStringStream;
begin
stream := TStringStream.Create('');
Result := '';
if (Pos('http://', LowerCase(url)) = 0) then URL := 'http://' + URL;
hSession := InternetOpen('My_App;)', INTERNET_OPEN_TYPE_PRECONF IG, nil, nil, 0);
try
hURL := InternetOpenURL(hSession, PChar(URL), nil, 0, INTERNET_FLAG_RELOAD, 0);
try
repeat
InternetReadFile(hURL, @Buffer, 1024, BufferLength);
Stream.WriteBuffer(Buffer, BufferLength);
Application.ProcessMessage s;
until (BufferLength = 0);
Result := Stream.DataString;
finally
InternetCloseHandle(hURL)
end;
finally
InternetCloseHandle(hSessi on);
Stream.free;
end;
end;
procedure TForm1.Button1Click(Sender : TObject);
begin
Memo1.Text := LoadFromURL('www.experts-exchange.com');
end;
Markus
{ uses WinInet }
function LoadFromURL(URL: String): String;
var
hSession, hURL: hInternet;
Buffer: array[0..1023] of Byte;
BufferLength: DWord;
Stream: TStringStream;
begin
stream := TStringStream.Create('');
Result := '';
if (Pos('http://', LowerCase(url)) = 0) then URL := 'http://' + URL;
hSession := InternetOpen('My_App;)', INTERNET_OPEN_TYPE_PRECONF
try
hURL := InternetOpenURL(hSession, PChar(URL), nil, 0, INTERNET_FLAG_RELOAD, 0);
try
repeat
InternetReadFile(hURL, @Buffer, 1024, BufferLength);
Stream.WriteBuffer(Buffer,
Application.ProcessMessage
until (BufferLength = 0);
Result := Stream.DataString;
finally
InternetCloseHandle(hURL)
end;
finally
InternetCloseHandle(hSessi
Stream.free;
end;
end;
procedure TForm1.Button1Click(Sender
begin
Memo1.Text := LoadFromURL('www.experts-exchange.com');
end;
Markus
very good, ty dude.