Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-05-2003
Walterdf Walterdf is offline
Miembro
 
Registrado: may 2003
Ubicación: Buenos Aires
Posts: 152
Poder: 21
Walterdf Va por buen camino
Chequear conexión a internet

Hola
Necesito bajar un archivo de una página de internet desde mi aplicación, y lo hice de la siguiente manera

try
stream:= TFileStream.Create('c:\miarchivo.txt',fmCreate);
idhttp1.Get('http://www.mipagina.com/miarchivo.txt',stream);
finally
stream.Free;
end;

Si la máquina está conectada a internet lo hace perfectamente pero, lógicamente, cuando no lo está me da el error: "Socket Error #1001", lo que yo quisiera es que el programa no se interrumpa si la conexión no está disponible, no se si existe alguna manera de manejar ese error como para que salte a otra línea.
Probé con chequear antes la conexión mediante un par de trucos que encontré en trucomanía pero no funcionaron.
Muchas gracias.
Walter
Responder Con Cita
  #2  
Antiguo 06-05-2003
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 24
__cadetill Va por buen camino
al igual te sirve el truco 448 de Trucomania. Echale una ojeada a ver
Responder Con Cita
  #3  
Antiguo 06-05-2003
Walterdf Walterdf is offline
Miembro
 
Registrado: may 2003
Ubicación: Buenos Aires
Posts: 152
Poder: 21
Walterdf Va por buen camino
Unhappy

Ya probé ese truco, yo tengo conexión LAN y cuando desconecto el cable me sigue dando como que está conectado, ademas varia el .dll (Shell32.dll, URL.dll, etc) según el Windows que se esté usando y mi aplicación es para distribuirla, es decir, que no se en que Windows se utilizará.
De todos modos, agradezco mucho tu respuesta.
Salu2.
Walter
Responder Con Cita
  #4  
Antiguo 06-05-2003
Avatar de __hector
[__hector] __hector is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Santo Domingo, Rep. Dom.
Posts: 1.075
Poder: 22
__hector Va por buen camino
Tienes el codigo dentro de un try/except, asi que esa excepcion que te salta no debe aparecer fuera del IDE de delphi. Si corres el ejecutable seguro no salta ese error.

Puedes ademas desabilitar la parada del sistema en delphi en el menu tools/debbuger options/language exceptios/stop on delphi exceptions
__________________
Héctor Geraldino
Software Engineer
Responder Con Cita
  #5  
Antiguo 06-05-2003
Walterdf Walterdf is offline
Miembro
 
Registrado: may 2003
Ubicación: Buenos Aires
Posts: 152
Poder: 21
Walterdf Va por buen camino
Hector
No es try...except, es try...finally, e intenté tambien lo vos me decis acerca de deshabilitar esa opción pero sigue dando el mismo error aún desde el .exe
Justamente lo que no se es como poner eso mismo en un try...except.
Gracias
Walter
Responder Con Cita
  #6  
Antiguo 06-05-2003
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 24
__cadetill Va por buen camino
prueba con esto a ver que tal

Código:
try
  try
     stream:= TFileStream.Create('c:\miarchivo.txt',fmCreate);
     idhttp1.Get('http://www.mipagina.com/miarchivo.txt',stream);
  finally
      stream.Free;
  end;
except
end;
esto te tendria que capturar sin problemas la exception
Responder Con Cita
  #7  
Antiguo 06-05-2003
Walterdf Walterdf is offline
Miembro
 
Registrado: may 2003
Ubicación: Buenos Aires
Posts: 152
Poder: 21
Walterdf Va por buen camino
EXCELENTE!!!, GRACIAS A AMBOS POR SU AYUDA.
SALUDOS
WALTER
Responder Con Cita
  #8  
Antiguo 07-05-2003
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Solo una acotación.

Si haces un

Código:
try
  mioperacion;
except
end;
no te dejará salir ninguna exepcion, y puede que la operación falle por algo que no está bajo tu control, por eso es buena practica ser mas específico acerca del error que se quiere tratar, para dejar que la maquinaria de delphi se encargue de los demás.

seria mas correcto hacer:

Código:
try
  MiOperacion;
except
  on ElErrorQueYoControlo do
    AlgunCodigoONoHacerNadaParaMatarLaExcepcion;
end;

Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #9  
Antiguo 13-05-2003
DanielAlexander DanielAlexander is offline
Miembro
 
Registrado: may 2003
Ubicación: argentina
Posts: 40
Poder: 0
DanielAlexander Va por buen camino
Question

hola!!!!!
Me interesó mucho el programa que hiciste para conectarte a internet, lo que necesitaría saber es que componentes utilizaste.
Muchas gracias.
Responder Con Cita
  #10  
Antiguo 13-05-2003
Walterdf Walterdf is offline
Miembro
 
Registrado: may 2003
Ubicación: Buenos Aires
Posts: 152
Poder: 21
Walterdf Va por buen camino
Hola Daniel
Mirá, lo que yo hice NO fue un programa para conectarse a internet, simplemente baja un archivo de una dirección web pero la pc ya debe estar conectada de lo contrario me tira el mensaje "Socket Error". Lo que si hice es que si se produce ese error que el programa no se pare, sino que lo salte ese error y no baje el archivo.
De todas formas te cuento que el componente que utilizo es un componente Indy Client (TidHttp) y el código que utilizo es:

var
stream: Tfilestream;

try
stream:= TFileStream.Create('c:\miarchivo.txt',fmCreate);
idhttp1.Get('http:www.mipagina.com/miarchivo.txt',stream);
finally
stream.Free;
end;

En la página de trucomanía tenés un par de códigos para verificar la conexión, a lo mejor a vos te sirven: www.q3.nu/trucomania
Espero haberte ayudado.
Saludos.
Walter
Responder Con Cita
  #11  
Antiguo 13-05-2003
DanielAlexander DanielAlexander is offline
Miembro
 
Registrado: may 2003
Ubicación: argentina
Posts: 40
Poder: 0
DanielAlexander Va por buen camino
Wink

Gracias Walterdf
Funcionó bien.
Responder Con Cita
  #12  
Antiguo 14-05-2003
Avatar de __hector
[__hector] __hector is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Santo Domingo, Rep. Dom.
Posts: 1.075
Poder: 22
__hector Va por buen camino
Jeje, por cierto, no es try/finally, sino try/finally/except, pero el finally no le veia la utilidad en tu caso, sin embargo si el except (para controlar la excepcion, no? )
__________________
Héctor Geraldino
Software Engineer
Responder Con Cita
  #13  
Antiguo 14-05-2003
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 26
delphi.com.ar Va por buen camino
Cita:
Posteado originalmente por hector
el finally no le veia la utilidad en tu caso,
¿Cómo que no?... el Finally le garatiza que siempre se ejecute el free, sinó si se produce un error nunca se va a liberar el Stream.

Un comentario: si van a hacer un except vacío, solo para que capture el error, también se podría hacer esto (aunque no lo recomiendo)

Código:
stream:= TFileStream.Create('c:\miarchivo.txt',fmCreate);
try
  idhttp1.Get('http://www.mipagina.com/miarchivo.txt',stream);
except
end;
stream.Free;
Y haría otra aclaración, el create del objeto, va fuera del try.., porque si no se crea el objeto porque produce un error, no quedará asignado a la variable.

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
El Mapa de los países enemigos de Internet Sasuke_Cub Noticias 6 19-11-2005 01:56:28
Conexión a Internet... dunia_lv Internet 3 12-08-2005 12:09:24
Conexion a internet de 3 subredes distintas usando zyxel 650 Rabata Redes 3 10-05-2005 21:11:54
Noruego pierde los estribos por mala conexión con la internet marcoszorrilla Noticias 2 04-03-2005 00:54:10
Conexion a internet remota candido Internet 2 11-09-2004 21:30:30


La franja horaria es GMT +2. Ahora son las 18:12:33.


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