Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   Refrescar el UrlDownloadToFile???? (https://www.clubdelphi.com/foros/showthread.php?t=21434)

AGAG4 17-05-2005 17:00:30

Refrescar el UrlDownloadToFile????
 
Tengo una Aplicación en Delphi, una de las cosas que hago es de descargar un archivo de una página web, lo hago con:
Código Delphi [-]
UrlDownloadToFile(nil, PChar(SourceFile), PChar(DestFile), 0, nil)
....
Esto lo hago cada 5 mins. en un Timer, para que me refresque el contenido de dicho archivo que descargo(Porque Cada 5 Mins. Aprox. Cambia el Contenido), el problema que tengo que la PRIMERA VEZ que lo descarga lo hace Corrrectamente, pero de la Siguiente en Adelante NO REFRESCA el Contenido, si lo hago MANUALMENTE de ver el contenido del Archivo Accesando por medio del Internet Explorer veo el Contenido CORRECTAMENTE más sin embargo con la instrucción UrlDownloadToFile no funciona correctamente, de la segunda en adelante siempre muestra el contenido de la PRIMERA VEZ que Descargo el archivo, ya hice que borrará el archivo despues de leer el contenido, pero no funcionó, me hace pensar que no lo hace directamente de la Página WEB, es como si en la segunda vez en adelante lo leyera del buffer de la memoria.....

Nota: Tengo que Cerrar y Volver Abrir mi Aplicación para poder que TOME el Contenido Actualizado Correctamente.

Agradezco cualquier sugerencia.

delphi.com.ar 17-05-2005 17:02:20

Fíjate en este ejemplo que subí que hace algo muuuuy parecido:
http://www.clubdelphi.com/foros/showthread.php?t=21293

Saludos!

AGAG4 17-05-2005 17:23:58

Gracias
 
Gracias por su pronta respuesta, se mira muy interezante su proyecto ya revise lo que me comento pero desconozco las herramientas Web, es decir sólo vi la instrucción :
Código Delphi [-]
DownloadURLToFile(AImageUrl, AImageFile)
que me imagino que hace algo parecido con UrlDownloadToFile que es la que uso, bueno seguiré haciendo pruebas....

Que tenga buen día.

delphi.com.ar 17-05-2005 17:32:53

Esa instrucción tambien esta escrita en el proyecto:
Código Delphi [-]
function DownloadURLToFile(const AUrl, AFileName: TFileName): boolean;
begin
  Result := True;

  with TDownLoadURL.Create(nil) do
    try
      URL := AUrl;
      Filename := AFileName;

      try
        ExecuteTarget(Nil);
      except
        Result := False;
      end;

    finally
      Free;
    end;
end;


Utiliza un TDownLoadURL que es un "Standard Action" :D que implementa "URLDownloadToFile" de UrlMon.dll.... A la larga lo mismo :D pero Made in Borland :D

AGAG4 17-05-2005 18:29:20

Gracias
 
Gracias Federico, voy a hacer pruebas....

Que tenga buen día.

AGAG4 18-05-2005 16:54:20

Pero....
 
Gracias por su respuesta Federico pero no me funciono, ya realize pruebas, hace lo mismo que el UrlDownloadToFile pero con la diferencia que la que usted me dio se crea TDownLoadURL.Create(nil) y se Destruye con FREE creí que con eso bastaba para que retomará la información del archivo de la página web pero no es así, TOMA SIEMPRE el primer valor que tomo al Iniciar la Aplicación, hago llamadas a la página en intervalos de 3 veces de 3 minutos después 3 veces de 5 minutos y por ultimo 3 veces de 10 minutos pero ninguno los retoma, siendo que si abró manualmente la página web si me aparece el último Dato del archivo.

Otra Cosa que descubrí es que cuando abró la página Manualmente en la Pc donde esta corriendo la Aplicación me doy cuenta que la aplicación cuando intenta retomar el archivo lo BAJA CORRECTAMENTE, pero si NO ABRO Manualmente sigue intentando pero sin éxito alguno.

Existirá alguna otra función ó API de windows????

A usted Federico si le REFRESCA el archivo que descarga en su aplicación????

Si no la solución que tomare sería cerrar y volver abrir la aplicación que apenas así refresca el archivo....

Gracias por su sugerencia.

petete2008 10-02-2012 12:58:24

tengo el mismo problema que tu con
UrlDownloadToFile

siempre me descarga el mismo contenido a pesar de modificarlo en el destino.

petete2008 10-02-2012 13:47:28

solucionado!!! :)

function DownloadToFile(URL, FileName: String): Boolean;
var lpszFile: Array [0..MAX_PATH] of Char;
begin
// Download to cache by getting newest version
if (URLDownloadToCacheFile(nil, PChar(URL), @lpszFile, MAX_PATH, BINDF_GETNEWESTVERSION, nil) = S_OK) then
// Copy to desired file name
result:=CopyFile(@lpszFile, PChar(FileName), False)
else
// Failed
result:=False;
end;

petete2008 12-03-2012 18:27:36

Ahora solo me falta ponerle un progressbar

Alguien sabe como hacerlo?
Gracias

Casimiro Notevi 12-03-2012 19:36:56

Amigo, tienes casi 100 mensajes... recuerda nuestra guía de estilo, gracias.


La franja horaria es GMT +2. Ahora son las 05:51:24.

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