Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 01-07-2005
cuscus cuscus is offline
Miembro
 
Registrado: abr 2005
Posts: 45
Poder: 0
cuscus Va por buen camino
listar ficheros

alguien me puede decir como puedo listar los ficheros de un directorio y meterlos en un stringlist sin usar ningun componente grafico como el TFileListBox???
Responder Con Cita
  #2  
Antiguo 01-07-2005
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Mira la función FindFirst, tienes un ejemplo en la ayuda de delphi.
Responder Con Cita
  #3  
Antiguo 01-07-2005
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.233
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
Cita:
Empezado por cuscus
...alguien me puede decir como puedo listar los ficheros de un directorio y meterlos en un stringlist sin usar ningun componente grafico como el TFileListBox???
Pues sí, hace tiempo me hice una función justo para eso.

Código Delphi [-]
  {: Devuelve una lista de nombres de fichero encontrados a partir de la
     carpeta inicial StartDir, que cumplen el patrón especificado por
     FileMask.Mediante recursively se indica si se desea hacer la busqueda 
     en los subdirectorios.
 StartDir     Carpeta desde la que empezar a buscar.
 FileMask    Patrón que han de cumplir los ficheros.
 Recursively Si hay que continuar la búsqueda en los subdirectorios.
    FilesList    Lista con los nombres de fichero encontrados.
  }
  procedure FindFiles(StartDir, FileMask: string; recursively: boolean; var FilesList: TStringList);
  const
    MASK_ALL_FILES = '*.*';
    CHAR_POINT = '.';
  var
    SR: TSearchRec;
    DirList: TStringList;
    IsFound: Boolean;
    i: integer;
  begin
    if (StartDir[length(StartDir)] <> '\') then begin
      StartDir := StartDir + '\';
    end;
  
    // Crear la lista de ficheos en el directorio StartDir (no directorios!)
    IsFound := FindFirst(StartDir + FileMask, faAnyFile - faDirectory, SR) = 0;
    // MIentras encuentre
    while IsFound do  begin
      FilesList.Add(StartDir + SR.Name);
      IsFound := FindNext(SR) = 0;
    end;
  
    FindClose(SR);
  
    // Recursivo?
    if (recursively) then begin
      // Build a list of subdirectories
      DirList := TStringList.Create;
      // proteccion
      try
        IsFound := FindFirst(StartDir + MASK_ALL_FILES, faAnyFile, SR) = 0;
        while IsFound do
        begin
          if ((SR.Attr and faDirectory) <> 0) and
            (SR.Name[1] <> CHAR_POINT) then
            DirList.Add(StartDir + SR.Name);
          IsFound := FindNext(SR) = 0;
        end;
        FindClose(SR);
  
        // Scan the list of subdirectories
        for i := 0 to DirList.Count - 1 do
          FindFiles(DirList[i], FileMask, recursively, FilesList);
      finally
        DirList.Free;
      end;
    end;
  end;
__________________
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
  #4  
Antiguo 01-07-2005
cuscus cuscus is offline
Miembro
 
Registrado: abr 2005
Posts: 45
Poder: 0
cuscus Va por buen camino
muchas gracias a todos, veo que no me queda otra que usar el TSearchRec, es un componente que no me gusta mucho pero bueno. No se porque el primer next que le hago me devuelve algo extraño y tengo q saltarle
Responder Con Cita
  #5  
Antiguo 01-07-2005
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.233
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
Bueno tú pedías no usar componentes gráficos, y aquí no se usa ninguno.

Cita:
Empezado por cuscus
...no me queda otra que usar el TSearchRec, es un componente que no me gusta mucho ...
TSearchRec no es un componente, es una estructura para guardar información y FindFirst, FindNext y FindClose son métodos (tampoco componentes).

Si no querías usar componentes, ni métodos, ni estructuras,... ¿Qué querías usar?
__________________
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
  #6  
Antiguo 01-07-2005
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
También puedes ejecutar desde tu programa algo así como "dir > lista.txt" y luego leer el fichero lista.txt y meter las líneas en un stringlist o algo así.
Aunque esta solución sería un poco "chapuza"
Responder Con Cita
  #7  
Antiguo 01-07-2005
cuscus cuscus is offline
Miembro
 
Registrado: abr 2005
Posts: 45
Poder: 0
cuscus Va por buen camino
Cita:
Empezado por Neftali
Bueno tú pedías no usar componentes gráficos, y aquí no se usa ninguno.


TSearchRec no es un componente, es una estructura para guardar información y FindFirst, FindNext y FindClose son métodos (tampoco componentes).

Si no querías usar componentes, ni métodos, ni estructuras,... ¿Qué querías usar?
no te lo tomes a mal hombre, si tu ayuda me ha servido de mucho, no he dicho q no me valga ni mucho menos, solo que en otros lenguajes como java hay clases mas potentes para estas cosas, solo eso, no era una critica a ti era una critica a delphi
Responder Con Cita
  #8  
Antiguo 02-07-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 23
vtdeleon Va por buen camino
Una broma

Saludos
Cita:
Empezado por Neftali
Si no querías usar componentes, ni métodos, ni estructuras,... ¿Qué querías usar?
Magia!!
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #9  
Antiguo 04-07-2005
cuscus cuscus is offline
Miembro
 
Registrado: abr 2005
Posts: 45
Poder: 0
cuscus Va por buen camino
pero cuando he dicho yo que no queria usar ningun componente ni ningun metodo ni ninguna estructura????????????????????????

Solo dije que TSearchRec no me gustaba mucho, no que no le quisiera usar y mucho menos que no quisiera usar nada mas.
Responder Con Cita
  #10  
Antiguo 04-07-2005
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.233
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
Cita:
Empezado por cuscus
...no te lo tomes a mal hombre...
No me lo he tomado a mal, no te preocupes, y si el mensaje daba esa impresión, es que no me expresé bien... Era simplemente un comentario...
__________________
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
  #11  
Antiguo 05-07-2005
cuscus cuscus is offline
Miembro
 
Registrado: abr 2005
Posts: 45
Poder: 0
cuscus Va por buen camino
Cita:
Empezado por Neftali
No me lo he tomado a mal, no te preocupes, y si el mensaje daba esa impresión, es que no me expresé bien... Era simplemente un comentario...
Ok todo claro entonces ;-) y gracias de nuevo, funciono como me dijiste
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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 22:37:06.


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