Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-05-2010
inecoiec inecoiec is offline
Registrado
 
Registrado: abr 2007
Posts: 3
Poder: 0
inecoiec Va por buen camino
Download archivo desde web cada 5 segundos

Hola, hace algún tiempo trabajé bastante en delphi 6, y como me sucede siempre, cuando dejo de usar un lenguaje de programación olvido gran parte de las cosas que aprendí. Ésto lo comento para "cubrirme" porque posiblemente lo que estoy consultando es algo básico pero no le encuentro la vuelta.

Tengo desarrollados unos equipos que tienen un servicio web embebido y que generan un archivo XML con algunos datos, a los que accedo en forma remota desde el explorador.
Estos equipos actualizan si archivo XML cada 1 segundo (están midiendo temperatura y humedad)

La idea es hacer una página web que lea los archivos XML de éstos equipos y los muestre. Estoy utilizando java Script para ello.

El asunto es que java script no puede leer archivos que no estén dentro de su dominio por lo que no puedo acceder directamente a éstos XML (que están en otros sitios), por lo que pensé en hacer un programa en Delphi, que grabe los XML en un directorio local para que el js pueda leerlos.

Hice ésta rutina para un solo archivo

procedure TForm1.Button1Click(Sender: TObject);
var
lStream: TFileStream;
sWebPage : string;
T:TMemoryStream;
begin
sWebPage := 'ijtt://htp.htp.htp.htp/variables.xml';
// lo puse así porque me dio un error el evio de éste tema que me dice
// que no puedo manar links

T:=TMemoryStream.Create;

try
IdHTTP1.Request.Username := 'admin';
IdHTTP1.Request.Password := 'admin';
idHTTP1.Get(sWebPage, t);
t.savetofile('c:\sitiolocal\variables.xml');
IdHTTP1.Disconnect;
except on e:exception do
showmessage('problemas de conexión');
end;

end;

Y funciona bien, pero cuando repito ésta actualización con un timer, digamos cada 5 segunos, en algún momento se cuelga. No se si será porque conicide con la lectura que hago desde el js.

Podrían decirme si hay alguna manera de optimizar ésta rutina ??

Muchas gracias de antemano


pero como todo programa que se deja de usar por bastante tiempo
Responder Con Cita
  #2  
Antiguo 15-05-2010
Avatar de movorack
[movorack] movorack is offline
Miguel A. Valero
 
Registrado: feb 2007
Ubicación: Bogotá - Colombia
Posts: 1.346
Poder: 20
movorack Va camino a la famamovorack Va camino a la fama
y si pones a la pagina misma a que lea el servicio web directamente?
__________________
Buena caza y buen remar... http://mivaler.blogspot.com
Responder Con Cita
  #3  
Antiguo 15-05-2010
inecoiec inecoiec is offline
Registrado
 
Registrado: abr 2007
Posts: 3
Poder: 0
inecoiec Va por buen camino
Cita:
Empezado por movorack Ver Mensaje
y si pones a la pagina misma a que lea el servicio web directamente?
El tema es que la lectura la estoy haciendo en javascript y no permite acceder a archivos fuera del dominio
Por eso pensé en ejecutar un programa aparte que me grabe los archivos en el directorio donde está la página que muestra los datos.

Quizás se pueda hacer en php pero jamás hice nada con eso
Responder Con Cita
  #4  
Antiguo 15-05-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.098
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Yo descargo una imagen de una página web cada 5 minutos, lo hago mediante wget y un script que se ejecuta mediante crontab (linux). Seguro que en windows existe algo parecido.
Responder Con Cita
  #5  
Antiguo 15-05-2010
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.918
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Cita:
Empezado por inecoiec Ver Mensaje
Código Delphi [-]
   except on e:exception do
     showmessage('problemas de conexión');
   end;
Este es tu primer GRAN error. NUNCA silencies las excepciones a menos que como ahora, quieras quedar en el limbo adivinando que pudo haber pasado.

No hay razón para que el JS bloquee la escritura de los archivos, PERO, es posible que alcance a leer un pedazo corrompido de los datos. Es mejor que grabes en un archivo temp (ej: c:\sitiolocal\variables.xm_) y luego lo muevas al original.

Serie bueno que activaras el loggin en indy pa que puedas ver bien que es lo que esta pasando.
__________________
El malabarista.
Responder Con Cita
  #6  
Antiguo 15-05-2010
Avatar de movorack
[movorack] movorack is offline
Miguel A. Valero
 
Registrado: feb 2007
Ubicación: Bogotá - Colombia
Posts: 1.346
Poder: 20
movorack Va camino a la famamovorack Va camino a la fama
Pues yo me iria nuevamente con el tema de que la web consuma el servicio...

Una posibilidad es PHP con NuSOAP...

Googleando encuentras varios tutoriales para crear servicios y consumirlos con esta libreria... si lo quieres en español pues este te puede servir.
__________________
Buena caza y buen remar... http://mivaler.blogspot.com
Responder Con Cita
  #7  
Antiguo 17-05-2010
inecoiec inecoiec is offline
Registrado
 
Registrado: abr 2007
Posts: 3
Poder: 0
inecoiec Va por buen camino
Cita:
Empezado por mamcx Ver Mensaje
Este es tu primer GRAN error. NUNCA silencies las excepciones a menos que como ahora, quieras quedar en el limbo adivinando que pudo haber pasado.

No hay razón para que el JS bloquee la escritura de los archivos, PERO, es posible que alcance a leer un pedazo corrompido de los datos. Es mejor que grabes en un archivo temp (ej: c:\sitiolocal\variables.xm_) y luego lo muevas al original.

Serie bueno que activaras el loggin en indy pa que puedas ver bien que es lo que esta pasando.
En realidad como estoy en el debugger, aunque salga por una excepción, recibo un mensaje aunque de hecho es muy difícil de interpretar.

Esa es una opción en la que no había pensado (la de generar un TEMP). No se igual que pasa si el JS lee al mismo tiempo que actualizo el html

Lo de hacer algo del lado del servidor, no me es posible, porque estoy trabajando sobre un controlador que tiene un servicio web corriendo y no en una compu, aunque igual me puede servir para otra aplicación.

Gracias a todos... después les cuento cómo lo resolví
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
Convertir segundos a formato hora, minutos y segundos jafera Varios 2 07-02-2009 22:13:45
Modificar colores de cada barra de un Tchart cargado desde una BD richisaurio Gráficos 6 07-05-2008 17:35:51
Modificar colores de cada barra de un Tchart cargado desde una BD richisaurio Impresión 0 07-05-2008 16:49:57
Recargar página cada N segundos MAXIUM HTML, Javascript y otros 5 07-04-2008 21:46:31
download periódico tcp_ip_es Internet 13 14-10-2005 17:00:27


La franja horaria es GMT +2. Ahora son las 16:37:39.


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