![]() |
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 |
al igual te sirve el truco 448 de Trucomania. Echale una ojeada a ver
|
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 |
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 |
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 |
prueba con esto a ver que tal
Código:
try |
EXCELENTE!!!, GRACIAS A AMBOS POR SU AYUDA.
SALUDOS WALTER |
Solo una acotación.
Si haces un Código:
try seria mas correcto hacer: Código:
try Hasta luego. |
hola!!!!!
Me interesó mucho el programa que hiciste para conectarte a internet, lo que necesitaría saber es que componentes utilizaste. Muchas gracias. |
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 |
Gracias Walterdf
Funcionó bien. |
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? :D )
|
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); Saludos! |
La franja horaria es GMT +2. Ahora son las 05:56:10. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi