FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Comportamiento extraño en StringList
Resulta que yo escaneo constantemente un directorio, para saber si hay algun subdirectorio nuevo, y si lo hay o no lo hay, lo cargo en un StringList (este lo creo al crearse la form y lo libero al cerrar la misma, sin problemas)
Utilizo la siguiente function:
Pero si bien, puedo mostrar el resultado de la funcion conrrectamente, ya que cuenta bien, no me pasa lo mismo con la Lista (TStringList), ya que no siempre me muestra el ultimo directorio que cuenta en:
En ciertos casos me añade como ultimo elemento al anterior, es decir lo repite, y a veces no. Esto lo pruebo copiando directorios al directorio que estoy escanenando. Porque pasa esto???? Saludos
__________________
|
#2
|
||||
|
||||
Es rarisimo, sigo sin poder solucionarlom y lo unico que necesito hacer es leer los nombres de los subdirectorios que contiene un determinado directorio (ni siquiera en foma recursiva) y de ahi obtener el nombre del ultimo de la lista.
Alguien conoce una mejor forma de hacerlo o alguna otra alternativa? Saludos
__________________
|
#3
|
||||
|
||||
esa lista no la tienes como variable ni como parámetro entonces debe ser una propiedad, lo más lógico de pensar es que hay algun otro método que accesa a ella y que está modificandola
__________________
self.free; |
#4
|
||||
|
||||
Cita:
Sino, como tendria que hacerlo?
__________________
|
#5
|
||||
|
||||
Tal vez sea problema de la rutina que lo rellena; Hay un truco en el ClubDelphi (no recuerdo cual exactamente) que rellena en un TStringList todos los ficheros de un directorio de forma recursiva.
Pruébala y así descartas esa parte de código (para detectar que no tenga errores).
__________________
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. |
#6
|
|||
|
|||
Posibilidad que se me ocurre,
Si se estan creando continuamente directorios o archivos, parece normal que pueda pasar eso , por una simple problema de concurrencia, que se da siempre que varios procesos acceden a los mismos datos, sin realizacion de bloqueos. Cuando se añade un subdirectorio o archivo nuevo al disco, la lista de archivos de ese directorio se modifica, ya que se tiene que insertar o añadir el nuevo archivo en la lista. De modo que cuando el programa en delphi esta recorriendo la lista, en el medio de este proceso, esta es modificada, creciendo o disminuyendo o cambiando la lista de archivos de orden y de posicion. En ese caso lo que habria que hacer es configurar el stringlist para que no admita duplicados: Lista.Duplicates:= dupIgnore; De este modo se evita que en el stringlist se añada dos veces el mismo archivo. Aunque la forma buena de hacer lo que pretendes seria, usar las funciones del api que avisan cuadno hay modificaciones en una carpeta: FindFirstChangeNotification FindNextChangeNotification ReadDirectoryChangesW WaitForSingleObject etc.. Saludos Última edición por Mick fecha: 19-06-2007 a las 12:44:23. |
#8
|
||||
|
||||
SOLUCIONADO
Cita:
Mil gracias a todos.
__________________
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Extraño comportamiento de Firebird 2.0 | TrUnkS | Firebird e Interbase | 4 | 06-01-2007 23:05:57 |
Un comportamiento extraño en delphi... | uper | Varios | 1 | 07-08-2004 00:44:14 |
Comportamiento extraño de Delphi | walrus | Varios | 3 | 05-08-2004 10:04:32 |
Comportamiento extraño dataModule | brandolin | OOP | 9 | 08-07-2004 14:25:47 |
Comportamiento extraño con InnoBD | brandolin | MySQL | 0 | 20-10-2003 14:34:09 |
|