Scalabium Software |
|
Knowledge for your independence'. | |
Home Delphi and C++Builder tips |
#80: How can I download a file from Internet by link? |
|
If you needs to download a some file from web, you can use the next code of DownloadFile procedure. For example, begin Memo1.Lines.Text := DownloadFile('http://www.scalabium.com/sme/index.htm') end; uses WinInet; function DownloadFile(const Url: string): string; var NetHandle: HINTERNET; UrlHandle: HINTERNET; Buffer: array[0..1024] of Char; BytesRead: dWord; begin Result := ''; NetHandle := InternetOpen('Delphi 5.x', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0); if Assigned(NetHandle) then begin UrlHandle := InternetOpenUrl(NetHandle, PChar(Url), nil, 0, INTERNET_FLAG_RELOAD, 0); if Assigned(UrlHandle) then { UrlHandle valid? Proceed with download } begin FillChar(Buffer, SizeOf(Buffer), 0); repeat Result := Result + Buffer; FillChar(Buffer, SizeOf(Buffer), 0); InternetReadFile(UrlHandle, @Buffer, SizeOf(Buffer), BytesRead); until BytesRead = 0; InternetCloseHandle(UrlHandle); end else { UrlHandle is not valid. Raise an exception. } raise Exception.CreateFmt('Cannot open URL %s', [Url]); InternetCloseHandle(NetHandle); end else { NetHandle is not valid. Raise an exception } raise Exception.Create('Unable to initialize Wininet'); end; PS: in this code I used the functions from WinInet.dll. This dll is a part of MS Internet Explorer so if you haven't the installed browser from Microsoft, this code will no workable (you'll receive the exception message).
|
|
Copyright© 1998-2024, Scalabium
Software. All rights reserved. |