Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-11-2010
radge radge is offline
Miembro
 
Registrado: may 2008
Posts: 147
Poder: 16
radge Va por buen camino
Como hariais esto , un actualizador un tanto peculiar

Buenas , estoy buscando la forma de hacer un ejecutable que sea capaz de comparar los archivos que tengo en LOCAL (exe's y archivos de crystal report unos 80 o 100 en total) y enviar este archivo a un servidor (toda la información empaquetado con un xml por ejemplo).

La idea seria que al abrir el programa recorriese todo el directorio de trabajo y insertará un registro por cada archivo que encuentra con el nombre y la fecha de modificación , por ejemplo si la carpeta es c:\DirectorioDeTrabajo\ dentro tendria los archivos

archivo1.exe 01/10/2010 09:30:55
archivo2.exe 01/10/2010 09:30:55
informe1.rpt 01/10/2010 09:30:55
....
....


Una vez lo tengo todo referenciado en la BD , cojer todos estos registros y enviarlos a un webservice (no se como hacer el intercambio de información , SOAP , enviando un archivo ...)

Entonces el webservice compararia todos los registros que recibe con sus archivos en local y aquellos que encontrase más nuevos los pondria en un archivo ZIP que seria lo que devolveria al cliente.

El cliente se descarga el archivo ZIP y es descomprimido.Que os parece la idea ? ando bien encaminado ?
PD : la tecnologia a usar seria delphi7.

salu2 radge
Responder Con Cita
  #2  
Antiguo 24-11-2010
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
¿no sería mejor utilizar el número de versión en lugar de la fecha de modificación?
__________________

Responder Con Cita
  #3  
Antiguo 24-11-2010
radge radge is offline
Miembro
 
Registrado: may 2008
Posts: 147
Poder: 16
radge Va por buen camino
Si.. en eso tienes razón , voy a activar la opción en el proyecto que vaya incrementando el número de versión.

Pero por el resto que os parece la pelicula ?

salu2 radge
Responder Con Cita
  #4  
Antiguo 24-11-2010
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
La idea a priori no parece nada mala.
Para los EXE puedes usar número de versión como comenta Contraveneno, para el resto la fecha de última modificación (siempre que desde el cliente no se modifiquen esos ficheros -o la fecha-).

Para obtener ficheros puedes buscar por FindFiles en los foros (es una función que hemos utlizado otras veces). Para obtener las fechas puedes revisar esta entrada.
Toda esa información puedes enviarla al WebService como si fuera una cadena, en eso no creo que haya problemas.
El WebService deberás hacer las comparaciones y generar un fichero (esto es lo que me parece más complejo) y devolver eso al cliente (un link de descarga).
Otra popción es que el cliente pase la cadena y un nombre de fichero para la descarga (un nombre aleatorio, por ejemplo). Debería esperar un tiempo al que el server generara el fichero y luego descargarlo (revisa la unit URLMon -creo ecordar-).
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #5  
Antiguo 25-11-2010
radge radge is offline
Miembro
 
Registrado: may 2008
Posts: 147
Poder: 16
radge Va por buen camino
Ok.. la idea del webservice la veo un poco lioso .. ya que no he trabajado con ellos... y si simplemente comparo fichero a fichero de lo que tengo en LOCAL con lo que tengo en el ftp y bajo uno a uno por ftp , sin crear un ZIP ni nada ?

Método simple... pero efectivo no ?

salu2 radge
Responder Con Cita
  #6  
Antiguo 25-11-2010
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Hombre, si tienes posibilidad de montar un FTP es mucho más sencillo que la opción del WebService, yq que desde el cliente puedes hacerlo todo.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #7  
Antiguo 25-11-2010
radge radge is offline
Miembro
 
Registrado: may 2008
Posts: 147
Poder: 16
radge Va por buen camino
Si.. al final cambio de planes a partir de los datos del servidor voy a comparar con lo que tengo en local , entonces necesito alguna función que me devuelva todo el directorio de un FTP con la fecha de modificación de cada archivo.

De esto os suena si hay algo ? o debo hacer-lo con las INDY ?

gracias , radge
Responder Con Cita
  #8  
Antiguo 25-11-2010
radge radge is offline
Miembro
 
Registrado: may 2008
Posts: 147
Poder: 16
radge Va por buen camino
He probado a hacerlo con la función getFileTimes pero solo funciona para archivos en LOCAL

GetFileTimes('ftp://misite.com/test/'+ ListdoFicheros.Strings[i], CDate, MDate, ADate);

Y me devuelve false porque no tiene acceso a dicho archivo... se os ocurre como hacer esto ? Solo me falta esta parte como obtener la fecha de modificación de un archivo colgado en un ftp.

gracias, radge
Responder Con Cita
  #9  
Antiguo 25-11-2010
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Diría que GetFileTime (de la API de Windows) es hasta cierto punto lógico que sólo funcione en Local, puesto que el FTP puede estar "montado" vete tú a saber dónde... ;-)

Supongo que para eso deberás revisar las funciones que te ofrezca el componente que estés utilizando para conectarte al FTP; Debe tener un comando para recuperar la lista de archivos y sus propiedades.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #10  
Antiguo 25-11-2010
radge radge is offline
Miembro
 
Registrado: may 2008
Posts: 147
Poder: 16
radge Va por buen camino
Estoy trabajando con indy ftp para delphi 5 , lo que no se ver que versión...

Por google he buscado con google con "delphi indy ftp get file information" y nada de nada....

gracias , radge
Responder Con Cita
  #11  
Antiguo 25-11-2010
radge radge is offline
Miembro
 
Registrado: may 2008
Posts: 147
Poder: 16
radge Va por buen camino
NOTA : acabo de ver que con winInet se puede hacer "FtpGetFileSize Returns the size of a previously opened file from the server." , veo que es una DLL del propio windows porque esta en c:\windows\system32 , pero no se como cargar-la desde delphi5 para poder acceder a ella
Responder Con Cita
  #12  
Antiguo 25-11-2010
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Si estás trabajando con las Indy, creo que el tema va por el componente TidFTP y el método List. También revisa en la ayuda sobre la propiedad:

property DirectoryListing: TIdFTPListItems;
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #13  
Antiguo 25-11-2010
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Arrow

Bueno el tema de actualizacion de versiones, pues se a tratado muchas veces , por ejemplo revisa los siguientes hilos:
http://www.clubdelphi.com/foros/showthread.php?t=65336
http://www.clubdelphi.com/foros/showthread.php?t=66816, etc.
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #14  
Antiguo 01-12-2010
radge radge is offline
Miembro
 
Registrado: may 2008
Posts: 147
Poder: 16
radge Va por buen camino
Muchas gracias a todos , al final ya lo hize , dependiendo del parametro que recibe se actualizada en LAN o via FTP , espero publicar el código por aquí en cuanto lo tenga depurado.

Lo que no consigo sacar el agua clara es como hacer que el mismo se "auto-actualize" no lo tengo nada claro... alguna idea o sugerencia ?

El concepto de auto-actualizar se me refiero a que se baje un archivo UPDATE.EXE y lo machaqué con el actual que se llamará igual y estará en ese momento en ejecución.

gracias radge
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
Como hariais este actualizador en delphi 5 ? radge Internet 3 03-12-2009 09:25:24
Actualizador eduarcol OOP 12 21-09-2007 18:13:05
Obtener Lista de dispositivos tanto en una pc local como remota JoeyJordison API de Windows 0 13-01-2007 17:55:30
Valor Null tanto en tablas como en query Aprendiendo SQL 3 16-10-2006 11:49:14
Select con una condicion un poco peculiar mrmanuel SQL 6 16-08-2005 12:53:38


La franja horaria es GMT +2. Ahora son las 05:15: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
Copyright 1996-2007 Club Delphi