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 29-11-2005
Luis Alberto Luis Alberto is offline
Miembro
 
Registrado: ago 2005
Posts: 149
Poder: 19
Luis Alberto Va por buen camino
Como grabar la fecha y hora de un archivo?

Hola buenos dias

La pregunta que estoy planteando es la siguiente:

Descargo por medio de mi FTP creado unos archivos que se llaman Partes y Product mismos que tienen fecha y hora que se encuentran ahi...lo que necesito hacer es que cuando los descargue me diga que fecha tiene y la hora que tienen por ejemplo:


Partes 23/11/2005 06:45

Product 23/11/2005 06:47

entonces necesitaria esos datos en un archivo de TXT.


Archivo: Partes
Fecha:23/11/2005
Hora:06:45

Archivo:Product
Fecha:23/11/2005
Hora:06:47
Responder Con Cita
  #2  
Antiguo 29-11-2005
Avatar de Jesús Pena
Jesús Pena Jesús Pena is offline
Miembro
 
Registrado: nov 2005
Posts: 88
Poder: 19
Jesús Pena Va por buen camino
Tienes funciones que lo hacen

Busca en la ayuda la funcion FileGetDate (en la unit SysUtils)
Responder Con Cita
  #3  
Antiguo 29-11-2005
Luis Alberto Luis Alberto is offline
Miembro
 
Registrado: ago 2005
Posts: 149
Poder: 19
Luis Alberto Va por buen camino
Gracias Jesus pero hya un problema si funciona bien ya lo revise pero deja explicar algo haber si puedes ayudarme, el archivo estan en el FTP y es UNIX oviamente ahi no hay unidades logicas entonces como manejo eso si me entiendes... cuando descargo el archivo me pone la fecha de hoy pero en el FTP tiene otro yo necesito tener la que esta en el FTP me explique?....
Responder Con Cita
  #4  
Antiguo 30-11-2005
Luis Alberto Luis Alberto is offline
Miembro
 
Registrado: ago 2005
Posts: 149
Poder: 19
Luis Alberto Va por buen camino
No todavia no puedo hacerlo funcionar hay alguien que me pueda ayudar...
Responder Con Cita
  #5  
Antiguo 30-11-2005
JXJ JXJ is offline
Miembro
 
Registrado: abr 2005
Posts: 2.475
Poder: 22
JXJ Va por buen camino
Yo intentaia hacer algo asi.

me conecto al ftp. supongo tienes el un list view.
para ver los archivos. que vas a descargar.

Despuesd e conectado y que se muestran en el listview.
los archivos, en listado. haces un recorrido de el campo
que es para la fecha, (en el cual tienes interes)

guardas los datos, y tambien, a que archivo pertenecen,
en un txt. xml, en memoria, base de datos o como quieras
algo asi. tipo cvs

ArchivoVideo.zip,11-05-2003

y ya que estuvo descargado el archivo, en tu pc,
windows, como dices. le pone la fecha actual.
de cuando se termino de descarar el archivo.
Entonces, ya que se termino de descargar.
creo, o supongo que el protocolo ftp, o el programa
cliente ftp, tandra algo parecido a un evento.
archivo descargo exitosamente,
despuesde disparado el evento,
haces una busqueda en el archivo, donde
guardaste, la informacion del servidor.
y se la cambias al archivo descargado.

O tal vez. hay una forma de que el programa ftp
no permita que se escriba la fecha actual.
de esta forma, se mantienen la del servidor linux. o unix

No he manejado FTP, por el momento,
Responder Con Cita
  #6  
Antiguo 30-11-2005
Luis Alberto Luis Alberto is offline
Miembro
 
Registrado: ago 2005
Posts: 149
Poder: 19
Luis Alberto Va por buen camino
Mira estoy manejando TTreeView cres que con ese puedas explicarme...?
Responder Con Cita
  #7  
Antiguo 30-11-2005
Luis Alberto Luis Alberto is offline
Miembro
 
Registrado: ago 2005
Posts: 149
Poder: 19
Luis Alberto Va por buen camino
sigo sin poder acerlo neceisto saber como guardo la fecha y hora de un archivo que esta en un FTP....
Responder Con Cita
  #8  
Antiguo 30-11-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Creo que no tendrías problemas en conseguir lo que precisas haciendo uso del API de WinInet. Revisa el siguiente Hilo y guíate por la función que se puede ver en el mismo, pero, sobre todo, por los artículos que enlazo yo mismo en no de los mensajes. Piensa que la función que verás en el Hilo que te refiero lo que hace es obtener el tamaño de un archivo que se encuentra en determinado Servidor de Internet, pues bien, por lo poco que pude leer ayer en los artículos que también te refiero y enlazo en el Hilo que te digo era posible conseguir lo que precisas, de forma parecida a como se consigue el tamaño de un determinado archivo. Cuéntanos cómo te va y, si precisas alguna ayuda ya sabes dónde estamos, en el ClubDelphi.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #9  
Antiguo 01-12-2005
Luis Alberto Luis Alberto is offline
Miembro
 
Registrado: ago 2005
Posts: 149
Poder: 19
Luis Alberto Va por buen camino
Gracias David voy a revisar ese codigo....y si tengo problemas te digo...
Responder Con Cita
  #10  
Antiguo 01-12-2005
Luis Alberto Luis Alberto is offline
Miembro
 
Registrado: ago 2005
Posts: 149
Poder: 19
Luis Alberto Va por buen camino
y como mando yamar a dicha funcion tengo que modificar el codigo...?
Responder Con Cita
  #11  
Antiguo 01-12-2005
Luis Alberto Luis Alberto is offline
Miembro
 
Registrado: ago 2005
Posts: 149
Poder: 19
Luis Alberto Va por buen camino
Las variables declaradas de tipo HINTERNET me marca error ?
Responder Con Cita
  #12  
Antiguo 01-12-2005
Luis Alberto Luis Alberto is offline
Miembro
 
Registrado: ago 2005
Posts: 149
Poder: 19
Luis Alberto Va por buen camino
ya no me marco erro pero ahora que la funcion

function TamanoArchivoInternet(URL: string) : Longint;

donde dice URL:string que debo de pararle si el archivo que deceo saber su tamaño por ejemplo esta en FTP //datos/IN/ Informe.dat
Responder Con Cita
  #13  
Antiguo 01-12-2005
Luis Alberto Luis Alberto is offline
Miembro
 
Registrado: ago 2005
Posts: 149
Poder: 19
Luis Alberto Va por buen camino
Ya rebice y por medio del WinInet no es posble obtener la fecha y la hora solamente el tamaño...
Responder Con Cita
  #14  
Antiguo 02-12-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,


Cita:
Empezado por Luis Alberto
(...) por medio del WinInet no es posble obtener la fecha y la hora solamente el tamaño...
Yo no pondría las manos en el fuego: que no sepa hacerlo, no quiere decir que no se pueda. Si lo dices por la siguiente frase, extraída de cierto artículo de JM...


Cita:
La única información que podemos obtener de un archivo es su tamaño, a través de la función FtpGetFileSize.
Piensa que antes y después de esa frase se dicen más cosas... pero, en fin, basta ya, puesto que parezco estar dando lecciones y yo tampoco he adentrado en el tema como para conseguir hacer lo que te propones mediante el API WinInet. Es solamente que creo que imposible no es.

Se me ocurrió intentarlo con el componente "IdFtp" de los componentes Indy y con esto ya es otra cosa: como podrás ver, propongo un código que he probado y funciona, pero, vuelvo a lo mismo: este componente es bastante más potente que lo que verás: puede que existan además otras formas de hacer lo propio. A mí, personalmente, me parece un poco chapuza lo siguiente, pero, en fin, funcionar, aparentemente, funciona sin problemas:

Código Delphi [-]
uses
  IdFTP;

procedure TForm1.Button1Click(Sender: TObject);
var
  IdFTP: TIdFTP;
  temp: TStrings;
begin
  temp := TStringList.Create;
  IdFTP := TIdFTP.Create(Self);
  try
    IdFTP.Username := 'usuario';
    IdFTP.Password := 'contrasena';
    IdFTP.Host := 'ftp.servidor.es';
    try
      IdFTP.Connect(); // Conectamos...
      //
      // Y nos movemos al directorio en donde esté
      // el archivo cuya fecha de modificación nos
      // interesa averiguar: partimos del directorio
      // raiz de nuestra "cuenta" en el Servidor FTP.
      //
      IdFTP.ChangeDir('/subdirectorio/otrosubdirectorio');
      //
      // Utilizamos el segundo parámetro del método
      // "List" con el fin de listar, no todos los
      // archivos, sino solamente el que nos interesa
      // dentro del directorio a que nos movimos antes.
      //
      IdFTP.List(temp, 'archivo.html', true);
      //
      // Y, si todo ha ido como se espera...
      //
      if (IdFTP.DirectoryListing <> nil) then
        // Obtenemos la fecha de la última modificación del archivo.
        ShowMessage(DateTimeToStr(IdFTP.DirectoryListing.Items[0].ModifiedDate))
      else
        raise Exception.Create('Asegúrate que el archivo exista en el Servidor');
    except
      temp.Free;
      IdFTP.Free;
    end;
  finally
    IdFTP.Free;
  end;
end;
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #15  
Antiguo 27-01-2009
tocomi tocomi is offline
Miembro
 
Registrado: may 2006
Posts: 45
Poder: 0
tocomi Va por buen camino
Despues de mucho buscar dentro del foro pude ubicar este hilo, que es justamente lo que ando buscando, comparar la fecha de un archivo con otra que esta en un PC, eso si el problema que tengo ahora es que al intentar conectar dice "invalid point operation" alguna idea de que podria estar pasando????

Estoy usando Delphi 2007, el nombre de usuario y la contraseña son validos, los uso en un programa de FTP que tengo para subir los archivos al servidor, estoy considerando mayusculas y minusculas

por si acaso manejo re poco los componentes Indy

Saludos y Gracias por su tiempo
Responder Con Cita
  #16  
Antiguo 27-01-2009
tocomi tocomi is offline
Miembro
 
Registrado: may 2006
Posts: 45
Poder: 0
tocomi Va por buen camino
Simplemente agregue un componente idftp y elimine la variable que lo crea (self) y ahora funciona, el "changedir" tampoco funciono pero con sendcmd si funciona, el problema de ahora es que el list no funciona
Responder Con Cita
  #17  
Antiguo 27-01-2009
tocomi tocomi is offline
Miembro
 
Registrado: may 2006
Posts: 45
Poder: 0
tocomi Va por buen camino
Este es el codigo que estoy usando pero cuando llega el minuto de armar la lista de archivos se cae y no logro encontrar el problema

Estoy usando Delphi 2007 con las librerias Indy que trae, nombre de usuario y clave funcionan, no se me ocurre que otro dato agregar para que tengan mas informacion

Cualquier ayuda sera bienvenida, Saludos y Gracias por su tiempo

Código:
 
var
  Archivos:TStringList;
begin
  Archivos := TStringList.Create;
  Archivos.Clear;
  IdFTP.Username := 'usuario';
  IdFTP.Password := 'contraseña';
  IdFTP.Host := 'ftp.servidor.com';
  IdFTP.Connect; // Conectamos...
  if idftp.Connected then
     begin
     try
        Idftp.SendCmd('CWD /var/www/html/programas/');
        Edit1.text:=Idftp.RetrieveCurrentDir;
        IdFTP.List(Archivos,'',false); //probe tambien con IdFTP.List(Archivos,'*.*',false); y con  IdFTP.List(Archivos,'*.*',true);  
        if (IdFTP.DirectoryListing <> nil) then
           ShowMessage(DateTimeToStr(IdFTP.DirectoryListing.Items[0].ModifiedDate))
        else
           raise Exception.Create('Asegúrate que el archivo exista en el Servidor');
     except
        Archivos.Free;
        showmessage('no se pudo cambiar la carpeta');
     end;
  end;
  IdFTP.Disconnect;
  Archivos.free;

Última edición por tocomi fecha: 27-01-2009 a las 21:08:40.
Responder Con Cita
  #18  
Antiguo 28-01-2009
tocomi tocomi is offline
Miembro
 
Registrado: may 2006
Posts: 45
Poder: 0
tocomi Va por buen camino
Alguien seria tan amable de traducirme esto al español???, seria ideal un ejemplo, es un comando de Indy 10.1.1 que es la que trae Delphi 2007

ChangeDir(AContext: TIdFTPServerContextBase,var VDirectory: string )
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


La franja horaria es GMT +2. Ahora son las 19:27:09.


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