barnamenevis76
چهارشنبه 12 دی 1397, 09:27 صبح
با سلام
چطور میتونم سورس صفحه اینترنتی جاری رو در یک فایل ذخیره کنم ( بدون نیاز به آدرس دهی)
یه مثال تو سایت www.foxite.com (http://www.foxite.com) ولی نیاز به دادن آدرس سایت هست
من میخوام بدون دادن آدرس ، صفحه جاری در IE رو در یک فایل ذخیره کنه.
lcText = getdatafromurl('http://www.forex.pk/open_market_rates.asp')?strextract(lcText,'','',98 )
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)
* debugging line - uncomment to see URL handle
* WAIT WINDOW "URL Handle: " + LTRIM(STR(hUrlFile))
IF lhUrlFile = 0
WAIT WINDOW "URL cannot be opened" Timeout 5
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 )
* return the URL contents
RETURN lcRetVal
از طریق رجیستری هم نمیخوام باشه ( چون سایت مورد نظر آدرس رو در رجیستری پاک می کنه !)
( وقتی روی webpage رایت کلیک و view source کلیک می کنیم محتوای صفحه در notepad نمایش داده میشه و آدرس در caption اون ( اون آدرس رو چطور میشه بدست آورد):قلب:
چطور میتونم سورس صفحه اینترنتی جاری رو در یک فایل ذخیره کنم ( بدون نیاز به آدرس دهی)
یه مثال تو سایت www.foxite.com (http://www.foxite.com) ولی نیاز به دادن آدرس سایت هست
من میخوام بدون دادن آدرس ، صفحه جاری در IE رو در یک فایل ذخیره کنه.
lcText = getdatafromurl('http://www.forex.pk/open_market_rates.asp')?strextract(lcText,'','',98 )
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)
* debugging line - uncomment to see URL handle
* WAIT WINDOW "URL Handle: " + LTRIM(STR(hUrlFile))
IF lhUrlFile = 0
WAIT WINDOW "URL cannot be opened" Timeout 5
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 )
* return the URL contents
RETURN lcRetVal
از طریق رجیستری هم نمیخوام باشه ( چون سایت مورد نظر آدرس رو در رجیستری پاک می کنه !)
( وقتی روی webpage رایت کلیک و view source کلیک می کنیم محتوای صفحه در notepad نمایش داده میشه و آدرس در caption اون ( اون آدرس رو چطور میشه بدست آورد):قلب: