inecoiec
15-05-2010, 00:13:53
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
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