Cobol Foro

Cobol Foro (https://www.cobolforo.es/index.php)
-   PowerCOBOL (ActiveX, v4 - v11) (https://www.cobolforo.es/forumdisplay.php?f=9)
-   -   [Sintaxis] Sacar y guardar el cógido fuente de una pagina Web (https://www.cobolforo.es/showthread.php?t=65)

Roger 5 de marzo de 2015 20:20

Sacar y guardar el cógido fuente de una pagina Web
 
Amigos del foro
Como puedo programar en power este control shortcut ctrl+u y automaticamente lo envia a un archivo (html) me urge.

Kuk 5 de marzo de 2015 20:47

Roger, lo puedes hacer en el "KeyDown" del Form:

Código COBOL:
  1. *
  2.  ENVIRONMENT     DIVISION.
  3.  DATA            DIVISION.
  4.  WORKING-STORAGE SECTION.
  5.  LINKAGE         SECTION.
  6.  01  POW-ARG-KEYCODE PIC S9(4) COMP-5.
  7.  01  POW-ARG-SHIFT   PIC S9(4) COMP-5.
  8.  PROCEDURE       DIVISION USING POW-ARG-KEYCODE POW-ARG-SHIFT.
  9.      
  10.      IF  POW-ARG-KEYCODE = POW-KEY-U AND
  11.          POW-ARG-SHIFT = POW-SHIFTSTATE-CTRL
  12.          tu codigo...
  13.      END-IF

Roger 5 de marzo de 2015 22:08

KUK
desde un boton llamar a una pagina web activar crtl+u y se grabe en un archivo en forma automatica.
http://nsae02.casimages.net/img/2015...0522693027.jpg

¿Hay otra forma de pasar la informacion que me muestra en esta pagina?
no importa si fuese en htlm

Kuk 5 de marzo de 2015 22:38

Roger, es que no te has explicado bien antes. Tu lo que quieres es algo mas complicado de hacer.

Se me ocurren 2 opciones:
  1. Mediante un control WebBrowser (o similar), cargar la magina y sacarle el codigo fuente.
  2. Mediante VBScript, no se exactamente como pero pienso que se podria hacer.

Si solo fuera llamar la web se podria por COM (el ejemplo que publico Rapinto hace unos dias), VBScript o incluso por Shell directamente desde PowerCOBOL, pero si quieres guardar el fuente... La via mas rapida seria WebBrowser.

Lo del Ctrl+U no se a que sirve pero supongo que si tienes la pagina dentro del control WebBrowser te tu Form le podras hacer lo que quieras.

Roger 5 de marzo de 2015 23:00

KUk
Mediante un control WebBrowser (o similar), cargar la maquina y sacarle el codigo fuente.

con el navegador se hace de esta manera he visto otros programadores
hacen esto con un boton en sus programa

Mozilla Firefox:

Abre Mozilla Firefox
Clic derecho o presiona las teclas Control + U
Haz clic en "Ver código fuente"

Una vez completados los pasos anteriores una nueva ventana se abrirá mostrando el código fuente.

Haz clic en el menú Archivo
Clic en "Guardar como"
Guarda el archivo como un archivo txt.. Ejemplo de nombre de archivo : codigo fuente.txt
:bronca:

Kuk 6 de marzo de 2015 09:13

Roger, todo lo que dices se hace a mano, con el raton. No se puede (o es casi imposible) de hacerlo via programa, en todo caso seria muy muy pero que muy complicado.

Existen controles OCX, de Microsoft que se llama WebBrowser, DBITech tiene el CtHtml o algo asi se llama... Si lo metes en tu aplicacion en un Form, puedes manejar todo, asimismo sacar el codigo fuente de la pagina cargada en el control. Es esto lo que te decia ;)

P.D. esa carita de colleja espero que no sea para mi queriendo decir que no me entero de nada en esta vida :D :D :D

Rapinto 6 de marzo de 2015 12:05

2 Archivos Adjunto(s)
Roger,

Penso que se consegue assim:

Código COBOL:
  1.  ENVIRONMENT     DIVISION.
  2.  DATA            DIVISION.
  3.  WORKING-STORAGE SECTION.
  4.  01 WINHTTP               PIC X(128) VALUE "MSXML2.ServerXMLHTTP".
  5. *
  6.  01 OBJHTTP USAGE OBJECT REFERENCE COM.
  7.  
  8.  01 OP1 PIC X(256) VALUE "POST".
  9.  01 WSSITE PIC X(256) VALUE SPACE.
  10.  01 SITE   PIC X(256) VALUE SPACE.
  11. *
  12.  01 OP3 PIC X(256) VALUE "FALSE".
  13. *
  14.  01 OP4 PIC X(256) VALUE "User-Agent".
  15.  01 OP5 PIC X(256) VALUE "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)".
  16.  01 OP6 PIC X(256) VALUE " ".
  17.  
  18.  01 COUNTER     pic s9(09) comp-5.
  19.  01 DMICON      pic s9(09) comp-5.
  20.  01 returnvalue pic s9(09) comp-5.
  21.  01 RESPOSTA    PIC X(8192).
  22. *
  23.  01  OLE-ERR-INFO.                                                
  24.     03  OLE-ERR-TYPE                  PIC X(001).                          
  25.     03  OLE-ERR-WCODE                 PIC X(002).                          
  26.     03  ROLE-ERR-WCODE REDEFINES OLE-ERR-WCODE  PIC S9(04) COMP-5.
  27.     03  OLE-ERR-SCODE                 PIC X(004).                          
  28.     03  ROLE-ERR-SCODE REDEFINES OLE-ERR-SCODE PIC S9(09) COMP-5.
  29. *
  30.  PROCEDURE       DIVISION.
  31.  DECLARATIVES.                                              
  32.  OLE-ERRO SECTION.                                          
  33.     USE AFTER EXCEPTION COMEXCEPTION.                          
  34.             INVOKE EXCEPTION-OBJECT "GET-ERROR-TYPE"              
  35.                  RETURNING OLE-ERR-TYPE.
  36.             INVOKE POW-SELF "DisplayMessage" USING OLE-ERR-TYPE "ERRO EM OLE2"
  37.             GO TO MAIN-90.
  38.  END DECLARATIVES.
  39.  MAIN SECTION.
  40.  MAIN-00.
  41.     INITIALIZE SITE.
  42.     MOVE "TEXT" OF CMSITE TO WSSITE.
  43.     IF WSSITE = SPACE GO TO MAIN-99-EXIT.
  44.     IF WSSITE(1:4) = "HTTP" OR = "http" GO TO MAIN-10.
  45.     MOVE "HTTP://" TO SITE.
  46.     MOVE WSSITE    TO SITE(8:).
  47.     MOVE SITE TO WSSITE.
  48.     MOVE SITE TO "TEXT" OF CMSITE.
  49. *
  50.  MAIN-10.
  51.     INVOKE COM "CREATE-OBJECT" USING WINHTTP RETURNING OBJHTTP.
  52. *
  53.     INVOKE OBJHTTP "OPEN" USING OP1 WSSITE.
  54.  
  55.     INVOKE OBJHTTP "setRequestHeader" USING OP4 OP5 .
  56. *
  57.     INVOKE OBJHTTP    "send" USING OP6.
  58. *
  59.     INVOKE OBJHTTP    "get-ResponseText" RETURNING RESPOSTA.
  60.     MOVE RESPOSTA TO XMLLINHA.
  61.     MOVE RESPOSTA TO "TEXT" OF CMTEXT1.
  62. *   INVOKE OBJHTTP "get-ResponseBody" RETURNING RESPOSTA.
  63. *****
  64. *   MOVE RESPOSTA TO XMLLINHA.
  65.     GO TO MAIN-90.
  66.  MAIN-90.
  67.     SET OBJHTTP TO NULL.
  68.  MAIN-99-EXIT.
  69.     EXIT PROGRAM.

Em anexo tens um ppj (Versão 9.0 do Fujitsu Cobol)

Kuk 6 de marzo de 2015 14:17

Rapinto, esto es VBScript, pasandolo por COM/OLE no? En realidad VBScript utiliza COM/OLE tambien (si no me equivoco). O sea, al menos la mayoria de sus posibilidades se basan en COM/OLE. Corrigeme si no es correcto.

Roger 6 de marzo de 2015 16:49

Amigos KUK Y RAPINTO
Si es tema creo un poco complicado pero nada imposible, he estado revisando y trasteando otras posibilidades hice pruebas con cthtml.ocx de dbi tech funciona en 60% pero el problema surge cuando necesito esa informacion pasar a mi base de datos este control tiene una propiedad de URL pero como el link tiene capcha solo te pasa la parte inicial de del URL.
Tampoco te permite captar el codigo fuente, por el ppj. que me envio Rapinto probe con este link Consulta RUC me envia un error ERROR EM OLE 2.
Creo que por este link esta la grieta que es para consulta mediante celulares y si te permite coger el codigo fuente.

¿Cual es la finalidad de todo esto? tengo sistemas ya instalado en diferentes empresas que tenian la validacion en linea la consulta del RUC por medio de otro link pero este dejo de funcionar, de igual forma otras empresas que tiene sistemas en otros lenguajes ya arreglaron este
"problema" estos lo hicieron en diferentes lenguajes fox pro, visual basic, phyton mi deseo era hacerlo en powercobol como anteriormente lo hice pero me tope con todo este desconocimiento.

si desean ver aca dejo unos enlaces donde demuestran el aplicativo
Consulta RUC Sunat - Peru Foxpro - YouTube
Consulta Ruc 2015 + Codigo Fuente + Explicación = S/. 100.00 - YouTube

Kuk 6 de marzo de 2015 18:00

Roger, yo de web no controlo mucho. Lo que te puedo ofrecer de ayuda es:
Si existe una DLL sea en VB sea en C++ (compilada) que haga lo mismo que hace esa web, la puedo sondear y darte el codigo COBOL para que la llames mediante WinAPI, cargarla dinamicamente, encontrar y llamar la función necesaria (o sea, sin necesidad de *.LIB).


La franja horaria es GMT +2. Ahora son las 02:04.

Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.