• Jueves 7 de Noviembre de 2024, 23:37

Autor Tema:  hora llegada fichero a filelistbox  (Leído 1447 veces)

Angeltt

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
hora llegada fichero a filelistbox
« en: Jueves 18 de Marzo de 2010, 09:28 »
0
Hola a todos, tengo el siguiente problema:

Tengo un directorio en mi PC donde mediante un programa FTP van
llegando ficheros cada cierto tiempo de forma automatizada.
A partir de esto estoy haciendo un programita en visual donde pueda
operar con esos ficheros. Lo primero que hago es ver que ficheros han
llegado, para ello, en un form he colocado un filelist donde mediante
un timer me va actualizando cada segundo la llegada de ficheros a ese
directorio y mostrándolos en el filelist. Hasta aquí, todo bien. El
problema surge porque quiero que en un label me vaya mostrando a que
hora llegó el ULTIMO fichero y que se vaya actualizando con la llegada
del siguiente, no sé si me explico.
El tema es que no tengo idea de hacerlo porque no tengo mucha
experiencia en programación. Si dan alguna idea con algo de código
para poder empezar se lo agradecería.

Gracias.

Nebire

  • Miembro HIPER activo
  • ****
  • Mensajes: 670
    • Ver Perfil
Re: hora llegada fichero a filelistbox
« Respuesta #1 en: Jueves 18 de Marzo de 2010, 13:05 »
0
Si no tienes mucha idea de programación, lo adecuado es que adquieras conocimientos básicos.

Un bebé, primero aprende a gatear, luego aprende a andar y ya de mayor podrá pilotar un avión si le place, pero no puede saltarse los pasos previos, porque incurrirá en graves lagunas de conocimiento, como la importancia del equilibrio y el sentido de la orientación.

Respecto de tu otro problema, si ya tienes un timer, aprovéchalo para localizar entre los ficheros la hora de creación del mismo, el que tenga la hora más reciente según tu caso.

Por otro lado es un trabajo tonto, porque sobrecargas al procesador en una tarea que lo más probable es que sea del todo inútil. Si tienes 5 o 6 ficheros vale, pero si el número va creciendo, pongamos 50 a la hora, te encontrarás con que al cabo de un día, cada que el timer se active debe repasar entre una lista de 1200 archivos, multiplica por 30 al cabo de un mes. Lo acertado es que el propio envío de FTP activara un servidor indicando el nombre y ruta del archivo, eso evita la necesidad de usar un timer para buscar entre los que ya hemos mirado 500 veces en el día para ver si es el archivo más reciente. Si ya le hemos preguntado si era el último 500 veces que necesidad hay de volverlo a hacer.... no retienes memoria sin gastar memoria ?...

Si no sabes como resolverlo, te sugiero una idea usando tu timer de una forma al menos más efectiva:
Cada fichero que llegue debe acceder sólo a una única carpeta, realmente llegarán 2 archivos, el deseado de nombre por ejemplo: xxxx2345.xxx y un 2º llamado: ruta2345.txt , importa que estén emparejados por el nombre, para no ser confundidos por otro envío muy reciente aún sin procesar. El 2º archivo contiene la ruta donde se señala que el fichero recibido debe ir a parar y que tu usarás para enviarlo a la ruta destinada (si es procedente, obviamente).
Por tanto el timer, lo que hace es cuando vence su período, comprobar si existen ficheros en dicha carpeta de Entrada, si hay alguno, lo toma y el equivalente con mombre basado en el: rutaXXXX.txt, no hace falta consultar hora, la hora es Ahora mismo, una vez hecho esto lees el archivo txt  y verificas la ruta de destino, aco seguido mueves el archivo a la carpeta de destino,  eliminas el txt y actualizas en el label el fichero recibido (con su ubicación definitiva). Si hay más archivos en la carpeta de entrada, los procesas todos, carece de importancia si uno llegó 1 segundo antes que el otro. 2 archivos son enviados, A fue enviado a las 10:59 y B fue enviado a las 10:55 , A llegó a las 11:00 y B llegó a las 11:01, aunque B llegó después fue enviado antes, es probable que tardaramás debido a su tamaño, o a otras causas... si no hemos accedido a la hora de envío, menos importante será la hora de llegada.

En determinados casos puede ser crítico, cierta prioridad, pero desde luego siempre será más relevante la prioridad de hora de envío que la de llegada.
«Ma non troppo»
----> ModoVacaciones = False<----