Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Download file from the internet
Message
From
16/08/2005 03:28:26
 
 
To
16/08/2005 01:57:43
General information
Forum:
Visual FoxPro
Category:
Other
Environment versions
Visual FoxPro:
VFP 6 SP5
Miscellaneous
Thread ID:
01037397
Message ID:
01041225
Views:
33
Vim,

one option, not tested
lcTempfile=ADDBS(SYS(2023))+ SUBSTR(SYS(2015),3)
=Getfilefromurl(yoururl,lcTempfile)
lcContents=filetostr(lcTempfile)
erase (lcTempfile)
Or this function, which is much longer due to more error checking, it can be shortened a lot.

lcContents=getdatafromurl(yoururl)
Function getdatafromurl
Lparameters pcUrlName
Declare Integer InternetOpen In wininet.Dll String sAgent, ;
  INTEGER lAccessType, String sProxyName, ;
  STRING sProxyBypass, Integer lFlags
Declare Integer InternetOpenUrl In wininet.Dll ;
  INTEGER hInternetSession, String sUrl, String sHeaders,;
  INTEGER lHeadersLength, Integer lFlags, Integer lContext
Declare Integer InternetReadFile In wininet.Dll Integer hfile, ;
  STRING @sBuffer, Integer lNumberofBytesToRead, Integer @lBytesRead
Declare short InternetCloseHandle In wininet.Dll Integer hInst
#Define INTERNET_OPEN_TYPE_PRECONFIG 0
#Define INTERNET_OPEN_TYPE_DIRECT 1
#Define INTERNET_OPEN_TYPE_PROXY 3
#Define SYNCHRONOUS 0
#Define INTERNET_FLAG_RELOAD 2147483648
#Define CR Chr(13)
Local lsAgent, lhInternetSession, lhUrlFile, llOk, lnOk, lcRetVal, lcReadBuffer, lnBytesRead
* what application is using Internet services?
lsAgent = "VPF 5.0"
lhInternetSession = InternetOpen( lsAgent, INTERNET_OPEN_TYPE_PRECONFIG, ;
  '', '', SYNCHRONOUS)
* debugging line - uncomment to see session handle
* WAIT WINDOW "Internet session handle: " + LTRIM(STR(hInternetSession))
If lhInternetSession = 0
  Wait Window "Internet session cannot be established" Time 2
  Return .Null.
Endif
lhUrlFile = InternetOpenUrl( lhInternetSession, pcUrlName, '', 0, ;
  INTERNET_FLAG_RELOAD, 0)
If lhUrlFile = 0
  Wait Window "URL cannot be opened"
  Return .Null.
Endif

lcRetVal = ""
llOk = .T.

Do While llOk
* set aside a big buffer
  lsReadBuffer = Space(32767)
  lnBytesRead = 0
  lnOk = InternetReadFile( lhUrlFile, @lsReadBuffer, Len(lsReadBuffer), @lnBytesRead)

  If ( lnBytesRead > 0 )
    lcRetVal = lcRetVal + Left( lsReadBuffer, lnBytesRead )
  Endif

* error trap - either a read failure or read past eof()
  llOk = ( lnOk = 1 ) And ( lnBytesRead > 0 )
Enddo

* close all the handles we opened
InternetCloseHandle( lhUrlFile )
InternetCloseHandle( lhInternetSession )
Clear Dlls InternetOpen,InternetCloseHandle,InternetOpenUrl ,InternetReadFile
* return the URL contents
Return lcRetVal
>Tore,
>
>Interesting function and much cleaner than spawning IE. How do I change it such that it returns a string rather than saving to a a file by default?
>
>Thanks,
>
>Vim
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform