Como usar o Visual FoxPro para download de uma página da Web da Internet

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 311306
Sumário
Este artigo fornece código de exemplo que mostra como baixar o conteúdo de uma página da Web da Internet sem a interação do usuário ou de automação do Microsoft Internet Explorer. Um exemplo usa uma função da biblioteca de vínculo dinâmico Urlmon.dll e outro exemplo usa o controle ActiveX Msinet.ocx.
Mais Informações
Urlmon.dll é fornecido com vários sistemas operacionais e produtos da Microsoft:
  • Microsoft Internet Explorer 5.0 e posterior
  • Microsoft Windows 98 e Microsoft Windows 98 SE
  • Microsoft Windows Millennium Edition (Me)
  • Microsoft Windows 2000 Professional e Microsoft Windows 2000 Server
  • Microsoft Office 2000
Msinet.ocx acompanha o Microsoft Visual Studio 97 e Microsoft Visual Studio 6.0. Msinet.ocx também é fornecido com as versões dos seguintes produtos autônomas:
  • Microsoft Visual Basic 5.0 e Visual Basic 6.0
  • Microsoft Visual FoxPro 6.0 e Visual FoxPro 7.0
  • Microsoft InterDev 6.0
  • Microsoft C++ 5.0 e 6.0 do C++
Se você for um usuário licenciado de um desses idiomas de desenvolvimento, você tem permissão para redistribuir o controle msinet.ocx.

Como usar o código de exemplo

Para usar esses exemplos de código, execute estas etapas:
  1. Cole cada exemplo de código em um novo programa em Visual FoxPro versão 6.0 ou posterior .
  2. Salve os programas e, em seguida, executar os programas. Como executar cada programa, um formulário que solicita um símbolo de ações é exibido.
  3. Digite qualquer símbolo de ação válido na caixa de texto e, em seguida, clique em Obter cotação para receber uma cotação.
Revise os comentários no código fonte para cmdGetQuote.click entender como a cotação foi adquirida.

Observação A página da Web que Baixe estas amostras de código pode alterar a qualquer momento. Como resultado, o código que analisa a página da Web para extrair a cotação de ações talvez não funcionem. Entretanto, o conceito usado para baixar a página ainda aplicarão.

Usando Urlmon.dll

*-----------------------------------* AUTHOR: Trevor Hancock (TREVORH@MICROSOFT.COM)* CREATED: 10/24/01 03:07:28 PM for Microsoft Knowledge Base article Q311306* ABSTRACT: Downloads a Web page and then parses the Web page to extract a stock quote.** DETAILS: This code uses the function URLDownloadToFile(), located in*          Urlmon.dll. This function downloads a Web page from*          http://moneycentral.msn.com. Specifically, the function calls*          "http://moneycentral.msn.com/scripts/webquote.dll?iPage=lqd&Symbol=",*		passing to the Web page a stock symbol that the user types into THISFORM.txtSYMBOL.*          The Web site returns an entire page of information about the*          stock, which this code then parses to extract the current quote.*-----------------------------------PUBLIC ofrmURLMONofrmURLMON = NEWOBJECT("frmURLMON")ofrmURLMON.SHOWRETURN**************************DEFINE CLASS frmURLMON AS FORM	HEIGHT = 83	WIDTH = 317	AUTOCENTER = .T.	BORDERSTYLE = 2	CAPTION = "Stock Quote via URLMON.DLL"	MAXBUTTON = .F.	MINBUTTON = .F.	NAME = "frmURLMON"	ADD OBJECT txtsymbol AS TEXTBOX WITH ;		FONTNAME = "Verdana", ;		VALUE = "MSFT", ;		FORMAT = "!", ;		HEIGHT = 26, ;		LEFT = 94, ;		TABINDEX = 1, ;		TOP = 7, ;		WIDTH = 100, ;		NAME = "txtSymbol"	ADD OBJECT cmdGetQuote AS COMMANDBUTTON WITH ;		TOP = 7, ;		LEFT = 206, ;		HEIGHT = 27, ;		WIDTH = 94, ;		FONTNAME = "Verdana", ;		CAPTION = "Get Quote", ;		TABINDEX = 2, ;		NAME = "cmdGetQuote"	ADD OBJECT lblSymbol AS LABEL WITH ;		AUTOSIZE = .T., ;		FONTNAME = "Verdana", ;		CAPTION = "Stock Symbol:", ;		HEIGHT = 16, ;		LEFT = 3, ;		TOP = 12, ;		WIDTH = 90, ;		TABINDEX = 5, ;		NAME = "lblSymbol"	ADD OBJECT txtQuote AS TEXTBOX WITH ;		FONTNAME = "Verdana", ;		HEIGHT = 23, ;		LEFT = 94, ;		READONLY = .T., ;		TOP = 39, ;		WIDTH = 100, ;		NAME = "txtQuote"	ADD OBJECT lblQuote AS LABEL WITH ;		AUTOSIZE = .T., ;		FONTNAME = "Verdana", ;		CAPTION = "Quote:", ;		HEIGHT = 16, ;		LEFT = 47, ;		TOP = 42, ;		WIDTH = 46, ;		TABINDEX = 5, ;		NAME = "lbQuote"	PROCEDURE cmdGetQuote.CLICK		LOCAL lcQuote AS STRING, ;			lcTempTxtFile AS STRING, ;			lnGetResults AS INTEGER, ;			lcURL AS STRING		lcQuote = ""		*-- Set up a variable referring to a temp .TXT file.		*-- Uses the current VFP TEMP DIR [SYS(2023)]		*-- and a random file name [SYS(2015)]		lcTempTxtFile = FORCEEXT(ADDBS(SYS(2023)) + SYS(2015), "TXT")		lnGetResults = 0		lcGetURl = "http://moneycentral.msn.com/scripts/webquote.dll?iPage=qd&Symbol=" + ;			ALLT(THISFORM.txtsymbol.VALUE)		DECLARE LONG URLDownloadToFile IN URLMON.DLL ;			LONG, STRING, STRING, LONG, LONG		WITH THISFORM			*-- Get the quote using the Urlmon.dll and store it			*-- to a temp .TXT file.			*-- This function returns non-zero if it fails.			lnGetResults = URLDownloadToFile(0, lcGetURl, lcTempTxtFile, 0, 0)			IF lnGetResults # 0				MESSAGEBOX("Download Failed",0,"")				RETURN .F.			ENDIF			*-- Read the Web page into a variable, and then erase it.			lcQuote = FILETOSTR(lcTempTxtFile)			ERASE (lcTempTxtFile)			*-- Grab the quote from the Web page. If in VFP 7.0 or later, we use the new			*-- STREXTRACT() function to grab the data between two delimiters.			*-- In VFP 6.0, use SUBSTR() to get the data, and then trim off any			*-- trailing HTML with the TRANSFORM() AND VAL() functions.			IF VERSION(5) => 700				lcQuote  = STREXTRACT(lcQuote, [Last  ], [&nbsp])			ELSE				*-- Extract the quote from the HTML				lcQuote = SUBSTR(lcQuote, ATC([Last  ], lcQuote) + 16, 8)				*-- Trim off the trailing HTML. VAL() will only return the numbers,				*-- which we then change to a string with TRANSFORM()				lcQuote = TRANSFORM(VAL(lcQuote))			ENDIF			*-- Put the quote in the text box.			.txtQuote.VALUE = "$" + lcQuote		ENDWITH	ENDPROCENDDEFINE****************				

Usando msinet.ocx

*-----------------------------------* AUTHOR: Trevor Hancock  (TREVORH@MICROSOFT.COM)* CREATED: 10/24/01 03:07:28 PM for Microsoft Knowledge Base article Q311306* ABSTRACT: Downloads a Web page and then parses it to extract a stock quote.** DETAILS: This code uses the Msinet.ocx ActiveX control to*          download a Web page from  http://moneycentral.msn.com. Specifically,*          the function calls "http://moneycentral.msn.com/scripts/webquote.dll?iPage=lqd&Symbol=",*          passing to the Web page a stock symbol that the user types into THISFORM.txtSYBMOL.*          The Web site returns an entire page of information about the*          stock, which this code then parses to extract the current quote.*-----------------------------------PUBLIC ofrmMSINETofrmMSINET = NEWOBJECT("frmMSINET")ofrmMSINET.SHOWRETURN**************************DEFINE CLASS ocxMSINET AS OLECONTROL	OLECLASS = "InetCtls.Inet.1"ENDDEFINE**************************DEFINE CLASS frmMSINET AS FORM	HEIGHT = 70	WIDTH = 304	AUTOCENTER = .T.	BORDERSTYLE = 3	CAPTION = "Stock Quote via MSINET.OCX"	MAXBUTTON = .F.	MINBUTTON = .F.	NAME = "frmMSINET"	ADD OBJECT MSINET AS ocxMSINET WITH ;		TOP = 37, ;		LEFT = 234, ;		HEIGHT = 100, ;		WIDTH = 100, ;		NAME = "MSINET"	ADD OBJECT txtsymbol AS TEXTBOX WITH ;		FONTNAME = "Verdana", ;		VALUE = "MSFT", ;		FORMAT = "!", ;		HEIGHT = 26, ;		LEFT = 94, ;		TABINDEX = 1, ;		TOP = 7, ;		WIDTH = 100, ;		NAME = "txtSymbol"	ADD OBJECT cmdGetQuote AS COMMANDBUTTON WITH ;		TOP = 7, ;		LEFT = 206, ;		HEIGHT = 27, ;		WIDTH = 94, ;		FONTNAME = "Verdana", ;		CAPTION = "Get Quote", ;		TABINDEX = 2, ;		NAME = "cmdGetQuote"	ADD OBJECT lblSymbol AS LABEL WITH ;		AUTOSIZE = .T., ;		FONTNAME = "Verdana", ;		CAPTION = "Stock Symbol:", ;		HEIGHT = 16, ;		LEFT = 3, ;		TOP = 12, ;		WIDTH = 90, ;		TABINDEX = 5, ;		NAME = "lblSymbol"	ADD OBJECT txtQuote AS TEXTBOX WITH ;		FONTNAME = "Verdana", ;		HEIGHT = 23, ;		LEFT = 94, ;		READONLY = .T., ;		TOP = 39, ;		WIDTH = 100, ;		NAME = "txtQuote"	ADD OBJECT lblQuote AS LABEL WITH ;		AUTOSIZE = .T., ;		FONTNAME = "Verdana", ;		CAPTION = "Quote:", ;		HEIGHT = 16, ;		LEFT = 47, ;		TOP = 42, ;		WIDTH = 46, ;		TABINDEX = 5, ;		NAME = "lbQuote"	PROCEDURE cmdGetQuote.CLICK		LOCAL lcQuote AS STRING, ;			lcURL AS STRING		lcQuote = ""		lcGetURl = "http://moneycentral.msn.com/scripts/webquote.dll?iPage=qd&Symbol=" + ;			ALLT(THISFORM.txtsymbol.VALUE)		WITH THISFORM			*-- Get the quote using the Msinet.ocx ActiveX control.			*--  The control will load it directly into a variable.			lcQuote = .MSINET.OpenURL(lcGetURl)			IF EMPTY(lcQuote)				MESSAGEBOX("Download Failed.",0,"")				RETURN .F.			ENDIF			*-- Grab the quote from the Web page. If in VFP 7.0 or later, we use the new			*-- STREXTRACT() function to grab the data between two delimiters.			*-- In VFP 6.0, use SUBSTR() to get the data, and then trim off any			*-- trailing HTML with the TRANSFORM() AND VAL() functions.			IF VERSION(5) => 700				lcQuote  = STREXTRACT(lcQuote, [Last  ], [&nbsp])			ELSE				*-- Extract the quote from the HTML				lcQuote = SUBSTR(lcQuote, ATC([Last  ], lcQuote) + 16, 8)				*-- Trim off the trailing HTML. VAL() will only return the numbers,				*-- which we then change to a string with TRANSFORM()				lcQuote = TRANSFORM(VAL(lcQuote))			ENDIF			*-- Put the quote in the text box.			.txtQuote.VALUE = "$" + lcQuote		ENDWITH	ENDPROCENDDEFINE**************************				
Referências
191222Suporte para Visual FoxPro 6.0 de controles ActiveX
307550Controles ActiveX oferece suporte para Visual FoxPro 7.0
INTERNET DE LOCAL DE SALVAMENTO DE PÁGINA DE DOWNLOAD DA WEB

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 311306 - Última Revisão: 02/16/2005 03:55:28 - Revisão: 2.4

Microsoft Visual FoxPro 6.0 Professional Edition, Microsoft Visual FoxPro 7.0 Professional Edition, Microsoft Visual FoxPro 8.0 Professional Edition, Microsoft Visual FoxPro 9.0 Professional Edition

  • kbmt kbapi kbautomation kbcodesnippet kbhowtomaster KB311306 KbMtpt
Comentários