FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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 |
#2
|
|||
|
|||
al igual te sirve el truco 448 de Trucomania. Echale una ojeada a ver
|
#3
|
|||
|
|||
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 |
#4
|
||||
|
||||
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 |
#5
|
|||
|
|||
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 |
#6
|
|||
|
|||
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; |
#7
|
|||
|
|||
EXCELENTE!!!, GRACIAS A AMBOS POR SU AYUDA.
SALUDOS WALTER |
#8
|
||||
|
||||
Solo una acotación.
Si haces un Código:
try mioperacion; except end; 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 |
#9
|
|||
|
|||
hola!!!!!
Me interesó mucho el programa que hiciste para conectarte a internet, lo que necesitaría saber es que componentes utilizaste. Muchas gracias. |
#10
|
|||
|
|||
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 |
#11
|
|||
|
|||
Gracias Walterdf
Funcionó bien. |
#12
|
||||
|
||||
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 |
#13
|
||||
|
||||
Cita:
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; Saludos!
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
El Mapa de los países enemigos de Internet | Sasuke_Cub | Noticias | 6 | 19-11-2005 00:56:28 |
Conexión a Internet... | dunia_lv | Internet | 3 | 12-08-2005 11:09:24 |
Conexion a internet de 3 subredes distintas usando zyxel 650 | Rabata | Redes | 3 | 10-05-2005 20:11:54 |
Noruego pierde los estribos por mala conexión con la internet | marcoszorrilla | Noticias | 2 | 03-03-2005 23:54:10 |
Conexion a internet remota | candido | Internet | 2 | 11-09-2004 20:30:30 |
|