Programación General > Power Builder

 obtener dato de una web

(1/1)

darksito:
hola , amigos de solocodigo se me presento una curiosidad , a decir verdad nunca e intentado hacer algo como esto pero se me vino a la mente hacer que powerbuilder pueda obetener un dato especifico de una pagina web Extamente de esta : Sunat

como veran aparecen los tipos de cambios de los cuales se rige mi empresa, ahora quisiera si hay alguna forma de obtener el dato ejemplo que ahora estemos dia 24 en la web hay una columna que dice dia y otra compra y venta  obtener eso dos valores compra y venta del dia tal
se podra realizar con powerbuilder

F_Tanori:
Relativamente Facil si se utiliza un objeto HTTPRequest, como se usa para AJAX

Te pongo un ejemplo sencillo de como leer una pagina con este metodo, por supuesto hay otros metodos... entre ellos insertar un webbrowser de los que recuerdo ahorita...


--- Código: Visual Basic --- OleObject HTTPRequestLong ret,ll_PosicionCadenaBoolean lb_ErrorString ls_HTML,ls_URL,ls_Cadena  HTTPRequest = Create OLEObjectret = HTTPRequest.ConnectToNewObject( "Msxml2.XMLHTTP" ) if ret<0 then    ret = HTTPRequest.ConnectToNewObject("Microsoft.XMLHTTP" )end if // Si ocurre un error detenemos la rutinaif ret <0 then    MessageBox('Error','No ha sido posible crear el objeto')    returnend if //Llamar Paginals_URL = "http://www.sunat.gob.pe/cl-at-ittipcam/tcS01Alias" lb_Error=falseHTTPRequest.open("GET",ls_URL,false)HTTPRequest.send() if HTTPRequest.status=200 then    ls_HTML = HTTPRequest.responseText    yield()else    ls_HTML ='Sitio No Disponible'    lb_Error=trueend if //Obtenemos el Codigo de la Pagina HTML//MessageBox(ls_URL,ls_HTML) <============================== if not lb_Error then    //Buscar Una Cadena en el Codigo Fuente    ls_Cadena ='Para efectos del Impuesto'     ll_PosicionCadena = Pos(ls_HTML,ls_Cadena)        if ll_PosicionCadena >0 then /* Cadena Encontrada */         /* Mostrar la cadena que aparece en el sitio (como Ejemplo):            =========================================                        "   Para efectos del Impuesto a la Renta, se deberá tomar el tipo de cambio de cierre, al 31 de Diciembre del ejercicio correspondiente  "            =========================================        */              MessageBox('SoloCodigo.com - F_Tanori ','~n'+'SUNAT dice: ~n ~n'+mid(ls_HTML,ll_PosicionCadena,135) +'~n ~n'+ls_URL)        end if        end if  
El ejemplo esta hecho 'continuo' para efectos practicos, pero lo ideal es separarlo ya sea creando una clase para esta tarea o en funciones, la busqueda es solo una pista, tambien puedes usar expresiones regulares, bueno eso ya corre por tu cuenta

Saludos

darksito:
gracias por tu pasciencia man eres un +10 :)

F_Tanori:
^_^

dany22_:

--- Cita de: F_Tanori en Domingo 25 de Octubre de 2009, 15:11 ---Relativamente Facil si se utiliza un objeto HTTPRequest, como se usa para AJAX

Te pongo un ejemplo sencillo de como leer una pagina con este metodo, por supuesto hay otros metodos... entre ellos insertar un webbrowser de los que recuerdo ahorita...


--- Código: Visual Basic --- OleObject HTTPRequestLong ret,ll_PosicionCadenaBoolean lb_ErrorString ls_HTML,ls_URL,ls_Cadena  HTTPRequest = Create OLEObjectret = HTTPRequest.ConnectToNewObject( "Msxml2.XMLHTTP" ) if ret<0 then    ret = HTTPRequest.ConnectToNewObject("Microsoft.XMLHTTP" )end if // Si ocurre un error detenemos la rutinaif ret <0 then    MessageBox('Error','No ha sido posible crear el objeto')    returnend if //Llamar Paginals_URL = "http://www.sunat.gob.pe/cl-at-ittipcam/tcS01Alias" lb_Error=falseHTTPRequest.open("GET",ls_URL,false)HTTPRequest.send() if HTTPRequest.status=200 then    ls_HTML = HTTPRequest.responseText    yield()else    ls_HTML ='Sitio No Disponible'    lb_Error=trueend if //Obtenemos el Codigo de la Pagina HTML//MessageBox(ls_URL,ls_HTML) <============================== if not lb_Error then    //Buscar Una Cadena en el Codigo Fuente    ls_Cadena ='Para efectos del Impuesto'    ll_PosicionCadena = Pos(ls_HTML,ls_Cadena)        if ll_PosicionCadena >0 then /* Cadena Encontrada */         /* Mostrar la cadena que aparece en el sitio (como Ejemplo):            =========================================                        "   Para efectos del Impuesto a la Renta, se deberá tomar el tipo de cambio de cierre, al 31 de Diciembre del ejercicio correspondiente  "            =========================================        */              MessageBox('SoloCodigo.com - F_Tanori ','~n'+'SUNAT dice: ~n ~n'+mid(ls_HTML,ll_PosicionCadena,135) +'~n ~n'+ls_URL)        end if        end if  
El ejemplo esta hecho 'continuo' para efectos practicos, pero lo ideal es separarlo ya sea creando una clase para esta tarea o en funciones, la busqueda es solo una pista, tambien puedes usar expresiones regulares, bueno eso ya corre por tu cuenta

Saludos

--- Fin de la cita ---




Hola que tal como estas quisera pedirte porfavor si me podrias ayudar con un codigo asi para obtener el tipo de cambio de sunat  visual basic 6

Navegación

[0] Índice de Mensajes

Ir a la versión completa