In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Re: Internet

Foro público de Xailer en español
Responder
carlos
Mensajes: 126
Registrado: Mié Feb 02, 2005 7:31 pm

Re: Internet

Mensaje por carlos »

Una vez mas vengo con mi lata, pero estas son las cositas que voy
corrigiendo para darle acabado al sistema.
Dejame me explicarme mejor.
Mi objetivo es agarrar automaticamente de la pagina:
" http://www.bancomer.com.mx/casadebolsas ... a_main.asp"
El valor del cambio del día correspondiente al dolar y al peso mexicano.
Otros lenguajes lo hacen usando lo siguiente:
FUNCTION TraerDatos()
LOCAL IE, cLink, oDoc
LOCAL cBody, cDolarC, cDolarV
cLink = " http://www.bancomer.com.mx/casadebolsas ... a_main.asp"
IE = CreateObject("InternetExplorer.Application")
cBody = This.IE.Document.body.innerHTML
cBody = Substr(cBody, At("Dólar C", cBody))
cDolarC = Left(cBody, At("<", cBody) - 1)
cDolarC = Alltrim(Substr(cBody, At(">",cBody,4) + 1, 6))
cBody = Substr(cBody, At("Dólar V", cBody))
cDolarV = Left(cBody, At("<", cBody) - 1)
cDolarV = + Alltrim(Substr(cBody, At(">",cBody,4) + 1, 6))
OBJETO1 = cDolarC
OBJETO2 = cDolarV
RETURN NIL
En Xailer yo estuve haciendo lo siguiente:
FUNCTION TraerDatos()
LOCAL IE, cLink, oDoc
LOCAL cBody, cDolarC, cDolarV
cLink :=
" http://www.bancomer.com.mx/casadebolsas ... a_main.asp"
IE := CreateObject("InternetExplorer.Application")
O
IE := TOleAuto():New( "InternetExplorer.Application" )
WITH OBJECT IE
:Visible := .F.
:Toolbar := .F.
:StatusBar := .F.
:MenuBar := .F.
:Invoke("Navigate", cLink )
END // hasta aqui todo perfecto.
//Pero al usar el
oDoc := IE:Document:Body:InnerHTML // m,e dice queno encuentra el
document Propiedad y es logico,, es que no se como llamarla o mejor dicho no
se
como emplearla.
podria hacer tambien:
IE:Invoke("Document") y tengo el mimso error
RETURN NIL
A mi en realidad lo que me interesa es sacar estos datos, si por alguna
razon es muy dificil, me las arreglare tecleandolos que es lo que hago hasta
el momento.
Pero se imaginan ustedes un calculo donde existen miles de productos y que
por casualidad existan negligencia por parte del operador en estos datos?
De todas las maneras muchisimas gracias
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9253
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Re: Internet

Mensaje por ignacio »

Carlos,
No tengo experiencia con el manejo via OLE del IE, lo siento. No obstante
creo que el ejemplo de Internet hace precisamente lo mismo que necesitas.
Como puedes observar el control Memo recibe todo el texto de la página.
Igual que lo colocas en un control, puedes asignarselo a una cadena y ahí
hacer las búsquedas que quieras.
Un saludo,
"Carlos Cedeño Vera" <carlos@labodegadeclimas.com> escribió en el mensaje
news:[email=43037eaf@ozsrvnegro.ozlan.local...]43037eaf@ozsrvnegro.ozlan.local...[/email]
>
> Una vez mas vengo con mi lata, pero estas son las cositas que voy
> corrigiendo para darle acabado al sistema.
>
> Dejame me explicarme mejor.
>
> Mi objetivo es agarrar automaticamente de la pagina:
> " http://www.bancomer.com.mx/casadebolsas ... a_main.asp"
> El valor del cambio del día correspondiente al dolar y al peso mexicano.
>
> Otros lenguajes lo hacen usando lo siguiente:
>
> FUNCTION TraerDatos()
> LOCAL IE, cLink, oDoc
> LOCAL cBody, cDolarC, cDolarV
> cLink =
> " http://www.bancomer.com.mx/casadebolsas ... a_main.asp"
> IE = CreateObject("InternetExplorer.Application")
>
> cBody = This.IE.Document.body.innerHTML
> cBody = Substr(cBody, At("Dólar C", cBody))
> cDolarC = Left(cBody, At("<", cBody) - 1)
> cDolarC = Alltrim(Substr(cBody, At(">",cBody,4) + 1, 6))
>
> cBody = Substr(cBody, At("Dólar V", cBody))
> cDolarV = Left(cBody, At("<", cBody) - 1)
> cDolarV = + Alltrim(Substr(cBody, At(">",cBody,4) + 1, 6))
>
> OBJETO1 = cDolarC
> OBJETO2 = cDolarV
> RETURN NIL
>
> En Xailer yo estuve haciendo lo siguiente:
>
> FUNCTION TraerDatos()
> LOCAL IE, cLink, oDoc
> LOCAL cBody, cDolarC, cDolarV
> cLink :=
> " http://www.bancomer.com.mx/casadebolsas ... a_main.asp"
> IE := CreateObject("InternetExplorer.Application")
> O
> IE := TOleAuto():New( "InternetExplorer.Application" )
> WITH OBJECT IE
> :Visible := .F.
> :Toolbar := .F.
> :StatusBar := .F.
> :MenuBar := .F.
> :Invoke("Navigate", cLink )
> END // hasta aqui todo perfecto.
> //Pero al usar el
> oDoc := IE:Document:Body:InnerHTML // m,e dice queno encuentra el
> document Propiedad y es logico,, es que no se como llamarla o mejor dicho
> no
> se
> como emplearla.
> podria hacer tambien:
> IE:Invoke("Document") y tengo el mimso error
> RETURN NIL
>
> A mi en realidad lo que me interesa es sacar estos datos, si por alguna
> razon es muy dificil, me las arreglare tecleandolos que es lo que hago
> hasta
> el momento.
> Pero se imaginan ustedes un calculo donde existen miles de productos y que
> por casualidad existan negligencia por parte del operador en estos datos?
>
> De todas las maneras muchisimas gracias
>
>
Ignacio Ortiz de Zúñiga
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Thefull
Mensajes: 70
Registrado: Lun Oct 11, 2004 4:44 pm

Re: Internet

Mensaje por Thefull »

Carlos, tan y como te dice Ignacio y Jose lalin
> Como puedes observar el control Memo recibe todo el texto de la página.
> Igual que lo colocas en un control, puedes asignarselo a una cadena y ahí­
> hacer las búsquedas que quieras.
ademas, como consejo , podrias aplicar al memo una expresion regular,
el cual te provee xHarbour, mirate regex.prg y regextest.prg para
saber mas , directorio /tests de xHarbour.
Si tienes el texto en formato puro, con una expresion regular
hallar lo que buscas es trivial.
Busca en San google mas sobre expresiones regulares, para entender
como aplicarlas en xHarbour.
Saludos
Rafa Carmona
Responder