Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   download periódico (https://www.clubdelphi.com/foros/showthread.php?t=15599)

tcp_ip_es 28-10-2004 16:53:39

download periódico
 
Me gustaría que me orientasen para realizar un programita (servicio) el cual se baje de internet cada día a una hora determinada un gráfico(archivo .gif) a un directorio.... es fácil??? que componentes utilizaríais???

Gracias de antemano,
Saludos, Tony

roman 28-10-2004 16:57:10

Pues así, a ojo de buen (o mal) cubero, usaría un Timer para determinar cuándo llega la hora y alguna de las componentes Indy para bajar el archivo. Cuál componente supongo que dependerá de si el archivo lo bajas de un servidor ftp o de una página web.

// Saludos

tcp_ip_es 28-10-2004 17:05:32

Muchas gracias por tu celeridad a la hora de responder.... se que esta mal pero nunca he utilizado las indy :( que componentes debería utilizar y como los configuraría??? si tienes un ejemplillo por ahi y me lo puedes mandar por correo te lo agradecería.... ya se que para el buen funcionamiento de los foros se debería exponer el código aqui pero para ver los componentes es mejor en un zip :D

roman 28-10-2004 17:39:04

Cita:

Empezado por tcp_ip_es
se que esta mal pero nunca he utilizado las indy :(

Tch, tch, ¿no te da vergüenza? :D

Cita:

Empezado por tcp_ip_es
que componentes debería utilizar y como los configuraría???

Pues no me dijiste por fin de dónde vas a bajar el archivo (¿ftp, web?)

Cita:

Empezado por tcp_ip_es
si tienes un ejemplillo por ahi

Ejemplo usando TIdHTTP:

Código Delphi [-]
var
  Stream: TFileStream;
 
begin
  Stream := TFileStream.Create('chela.jpg', fmCreate);
  try
    IdHTTP.Get('http://www.clubdelphi.com/users/roman/chela.jpg', Stream);
  finally
    Stream.Free;
  end;
end;

Si además quieres mostrar una barra de progreso puedes usar los eventos OnWorkBegin, OnWorkEnd y OnWork:

Código Delphi [-]
procedure TForm1.IdHTTPWorkBegin(
  Sender: TObject; AWorkMode: TWorkMode;
  const AWorkCountMax: Integer);
begin
  ProgressBar.Max := AWorkCountMax;
end;
procedure TForm1.IdHTTPWork(
  Sender: TObject; AWorkMode: TWorkMode;
  const AWorkCount: Integer);
begin
  ProgressBar.Position := AWorkCount;
end;
procedure TForm1.IdHTTPWorkEnd(Sender: TObject; AWorkMode: TWorkMode);
begin
  ShowMessage('La chela está servida');
end;

Cita:

Empezado por tcp_ip_es
y me lo puedes mandar por correo te lo agradecería.... ya se que para el buen funcionamiento de los foros se debería exponer el código aqui pero para ver los componentes es mejor en un zip :D

Lo siento, no me convence tu argumento :p

// Saludos

Neftali [Germán.Estévez] 28-10-2004 18:03:21

Cita:

Empezado por tcp_ip_es
Me gustaría que me orientasen para realizar un programita (servicio) el cual se baje de internet cada día a una hora determinada un gráfico(archivo .gif) a un directorio.... es fácil??? que componentes utilizaríais???

Hace poco hice algo similar, en mi caso era sencillo y con la restricción de que inicialmente conocía el nombre del fichero. Si es así puedes utilizar una función que hay en la unit URLMon de Delphi (no hace falta ningun componente). En sencillita, pero funciona. Me hice él siguiente procedimiento:

Código Delphi [-]
function DownloadFile(Source, Dest: string): Boolean;
begin
try
Source := AnsiReplaceStr(Source, '/', '\');
Result := UrlDownloadToFile(nil, PChar(Source), PChar(Dest), 0, nil) = 0;
except
Result := False;
end;
end;
 
// para usarlo....
if DownloadFile(edtNew.Text, Destino.Text) then begin...

Seguramente con los componentes comentados tendrás más potencia y control (en cuanto a errores y demás), pero ésta es una opción simple (depende de para qué lo necesites...).

tcp_ip_es 28-10-2004 18:33:46

de primeras muchas gracias a los dos... he implementado las dos soluciones y funcionan a la perfección las dos, pero (siempre tiene que haber un pero, sino no tiene gracia :D ) accediendo a una web local, es decir que no pase por ningun proxy, lo que yo quiero es coger una imagen que está detrás del proxy por ejemplo "la chela" de Román que bien me la tomaría ahora fresquita... :D

Bueno lo que he hecho, de lógica pura, es poner en las propiedades del componente idhttp1 lo siguiente:
Proxy Params:
BasicAuthentication: True/false (he probado con los dos)
ProxyPassword: Mipassword
ProxyPort: 8080
ProxyServer: ElNombredeMiProxy
ProxyUsername: MiUsuario

y no me funciona :( con una salvedad si la propiedad BasicAuthentication la pongo a true me saca esta excepción : " HTTP/1.1 407 Proxy Authentication Required (El Servidor ISA requiere autorización para atender la petición. Acceso denegado al servicio proxy Web).
y si la pongo a false me da un "Access violation on Adress bla bla bla"

las demás propiedades del componente Idhttp las dejo en default, vamos como viene de serie :D , pero no me funciona no se porque no le pasa bien las credenciales al proxy (Usuario y Password) :( , no se si es de eso....

Si sabéis que puede pasar decirme algo.,... y muchas gracias de nuevo por vuestro tiempo y ayuda....

P.D. La opción de Neftali no se si se le puede decir en algún sitio que pasa por un proxy determinado....

Neftali [Germán.Estévez] 29-10-2004 10:11:50

Cita:

Empezado por tcp_ip_es
...La opción de Neftali no se si se le puede decir en algún sitio que pasa por un proxy determinado

Desgraciadamente, como te comenté ésta opción es sencilla, pero simple a la vez; Creo que para el tema de proxi no vas aencontrar salida por éste camino :( , deberías investigar por el que te comenta Roman.

tcp_ip_es 29-10-2004 10:21:29

Gracias de todas formas Neftali, ahora lo que necesito es que el componente idhttp funcione a traves de un proxy :D sigo sin hacerle funcionar :( Roman Help!!!

__hector 29-10-2004 15:33:17

No tendra que ver con restricciones implementadas en el mismisimo ISA Server? Tienes acceso a configurar el ISA? Puedes darle un "Allow All" para que pase todos los paquetes que vengan desde tu maquina a cualquier puerto, sin restriccion (al menos solo para probar esto) ?

tcp_ip_es 30-10-2004 12:18:05

Cita:

Empezado por hector
No tendra que ver con restricciones implementadas en el mismisimo ISA Server? Tienes acceso a configurar el ISA? Puedes darle un "Allow All" para que pase todos los paquetes que vengan desde tu maquina a cualquier puerto, sin restriccion (al menos solo para probar esto) ?

¿que restricciones puede haber??? al fin y al cabo es trafico por el puerto 8080 no?? no debería tener ninguna restricción yo le paso el username y el password y ya esta no????... a lo que me dices que si tengo acceso, pues si y no, es decir trabajo en una empresa en la cual el área de desarrollo esta por una parte y el de sistemas por otra, y precisamente no me llevo muy bien con el administrador de sistemas :D ...

jooooooo .... si yo sólo quiero bajarme el grafiquito del tiempo de terra todos los días para ponerlo en mi web :( snif snif

dagsoft 09-11-2004 21:20:33

Como puedo pausar la descarga
 
Holas, amigos quiero hacer que mi programa se pueda actualizar ahora lo que quiero saver son 3 cosas que alomejor las respondieron anteriormente y no entendi:
  • Como descargar un archivo de una pagina web grande o chico por ejemplo de:
www.pagina.com/actualizacion.exe (pagina que no existe, es de ejemplo)
y suponiendo que el archivo pesara 20 mb
  • otra cosa es como pausar la descarga que el usuario suponiendo descargo un 20 % que quiera apagar la pc y continuarla al otro dia como aria para pausar la descarga?
  • la ultima cosa quiero mostrar el estado de la descarga en una barra, que me diga los mb que lleva descargados y el porsentaje. lo de la barra se aria como an dicho anteriormente.
Gracias de ante manos
Saludos A todos Daniel
Perdonen las molestias es que hace muy poco que me inicie en delphi y no se casi nada :confused: :( :confused: :( :confused: :( :confused:

Neftali [Germán.Estévez] 10-11-2004 11:32:08

En la Web de JM: http://www.lawebdejm.com/prog/delphi/index.html

En la sección de "Programación/Delphi/Código fuente" tienes un proyecto hecho en Delphi que es un gestor de Descargas; Te pongo las descripción completa, porque creo que te puede servir de ejemplo.

//----------------------------------------------------------
Un pequeño gestor de descargas
Este otro programa implementa un sistema para realizar descargas multihilo, pero permitiendo cancelar y reanudar la operación en el momento en que lo hemos dejado, como hacen los gestores de descargas.
Para ello hace uso de la cabecera HTTP “Range”, junto con una implementación de los hilos basada en el API Win32, sin utilizar la clase TThread de la VCL.
//----------------------------------------------------------
Desde su página te lo puedes descargar.

dagsoft 10-11-2004 19:22:15

Thanks - Muchas Gracias
 
Muchas Gracias A Todos Y Suerte.

Saludos Atte. Daniel

munk 14-10-2005 17:00:27

Hola,

estoy teniendo el mismo problema que tú con el acceso a internet a través de los componentes Indy y un servidor ISA Server.

Por casualidad no habrás encontrado la solución????:confused:

Llevo peleándome con esto bastante y no lo veo claro :(

Gracias.


Cita:

Empezado por tcp_ip_es
Gracias de todas formas Neftali, ahora lo que necesito es que el componente idhttp funcione a traves de un proxy :D sigo sin hacerle funcionar :( Roman Help!!!



La franja horaria es GMT +2. Ahora son las 22:46:29.

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