Página 1 de 1

Re: Internet

Publicado: Mié Ago 17, 2005 8:15 pm
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

Re: Internet

Publicado: Jue Ago 18, 2005 10:14 am
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
>
>

Re: Internet

Publicado: Vie Ago 19, 2005 12:49 pm
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