Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-03-2009
chinchan chinchan is offline
Miembro
 
Registrado: abr 2006
Posts: 109
Poder: 19
chinchan Va por buen camino
Ver código fuente de una página web

Hola. ¿Cómo podría conectarme con una página web y ver su código fuente? (en un RichEdit por ejemlo). Muchas Gracias
Responder Con Cita
  #2  
Antiguo 29-03-2009
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Código:
RichEdit->Text = IdHttp->Get("http://www.clubdelphi.com/");
Donde "IdHttp" es un componente del paquete de componentes Indy, incluidos en Delphi, y, también en C++ Builder, creo.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 29-03-2009
chinchan chinchan is offline
Miembro
 
Registrado: abr 2006
Posts: 109
Poder: 19
chinchan Va por buen camino
Perfecto, no hay como preguntar al que sabe, muchas gracias.
Responder Con Cita
  #4  
Antiguo 30-03-2009
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Yo no soy muy amigo de componentes, aunque la misma VCL es un conjunto de ellos...

Bueno, me gustaría exponer una solución usando sólo API sin componentes de terceros ni de la VCL en la función de lectura de la Web:

Código:
#include <vector>

bool InternetReadWeb(char* URL, std::vector<BYTE> *Vector)
{
  HINTERNET hNet;
  HINTERNET hUrl;
  BYTE  Buffer;
  DWORD BytesRead = 0;
  bool Result = false;

  if(InternetAttemptConnect(0) != ERROR_SUCCESS) return Result;

  hNet = InternetOpen("App", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
  if (hNet){
    hUrl = InternetOpenUrl(hNet, URL, NULL, 0, INTERNET_FLAG_RELOAD, 0);
    if (hUrl){
      // Lee la pagina web...
      for(int ind=0; ; ind+=BytesRead){
        Result = InternetReadFile(hUrl, &Buffer, sizeof(BYTE), &BytesRead);
        if(Result && BytesRead==0) break;
        Vector->push_back(Buffer);
      }
      InternetCloseHandle(hUrl);
    }
    InternetCloseHandle(hNet);
  }

  return Result;
}
Y el uso de esta función para el caso particular de esta pregunta:
Código:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    std::vector<BYTE> Memory;
    InternetReadWeb("http://www.clubdelphi.com/", &Memory);
    RichEdit1->Text = (char*)&Memory[0];
}
Tenemos algo mas de código, pero nos hacemos independientes de las Indy.

Saludos.
Responder Con Cita
  #5  
Antiguo 30-03-2009
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
... Y si no te importa usar algo de la VCL en tu función InternetReadWeb, entonces la puedes diseñar así:

Código:
String InternetReadWeb(char* URL)
{
  HINTERNET hNet;
  HINTERNET hUrl;
  char  Buffer;
  DWORD BytesRead = 0;
  String Text = "";
  bool NoError;

  if(InternetAttemptConnect(0) != ERROR_SUCCESS) return Text;

  hNet = InternetOpen("agent", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
  if (hNet){
    hUrl = InternetOpenUrl(hNet, URL, NULL, 0, INTERNET_FLAG_RELOAD, 0);
    if (hUrl){
      // Lee la pagina web...
      for(int ind=0; ; ind+=BytesRead){
        NoError = InternetReadFile(hUrl, &Buffer, sizeof(BYTE), &BytesRead);
        if(NoError && BytesRead==0) break;
        Text = Text + Buffer;
      }
      InternetCloseHandle(hUrl);
    }
    InternetCloseHandle(hNet);
  }

  return Text;
}
Para usarla de esta manera:
Código:
   RichEdit1->Text = InternetReadWeb("http://www.clubdelphi.com/");
Con menos código y quizás mas cómoda...

Se me olvidaba, en cualquiera de las opciones del uso de estas API, debes incluir en tu proyecto la librería inet.lib.

Saludos.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Ver El Codigo Fuente de una pagina PHP Zeinc PHP 10 12-09-2007 18:51:30
Código fuente chinchan C++ Builder 3 01-08-2006 04:59:25
Extraer código fuente html de página web Casimiro Notevi Varios 16 11-11-2005 22:30:06
TPV.- Codigo Fuente Rabata Varios 4 15-10-2005 13:48:51


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


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi