![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Bueno, ya lo he conseguido, la duda era que no sabía eliminar el if de la búsqueda recursiva.
Ala, ya está, me parece que este hilo debería quedar en la colección de hilos útiles. a mi me parece que lo és y mucho.
__________________
:) |
|
#2
|
||||
|
||||
|
DarkByte, si usas las rxlibs, tienen una unidad llamada nkfiles.pas en la cual tienes esta funcion:
Código:
// Devuelve una lista con todos los ficheros de un directorio que se ajustan // a la máscara cMask, con unos atributos dados, si lRecursive vale True, // busca también en los subdirectorios, en los subdirectorios de los // subdirectorios, etc. // Devuelve False si el directorio no existe. function FindFilesInDir(const cDir:String; cMask: TStrings; iAttr: Integer; lRecur: Boolean; S: TStringList): Boolean; iattr := fareadonly+faAnyfile; creo que debes añadir la unidad FileCtrl para usar fareadonly, si no es esta unidad, busca en la ayuda.(no tengo delphi a mano ahora mismo) Para usar la libreria nkfiles, deberás añadir la ruta de la misma al Library Path de Delphi Espero te sea de utilidad Última edición por Lepe fecha: 16-06-2004 a las 12:15:39. |
|
#3
|
||||
|
||||
|
Gracias Lepe, la próxima vez seguiré tu consejo, que parece más sencillo. Ahora no puedo porque ya lo tengo todo implementado y me da perezaaaaaa
.Gracias de nuevo, compañero ![]()
__________________
:) |
|
#4
|
||||
|
||||
|
Hola:
Tengo un problemita con esta función, espero sus ayudas
En vez de devolverme el nombre del archivo, me devulve el nombre de la carpeta. Saludos. |
|
#5
|
||||
|
||||
|
- Cierra la búsqueda con Nombre.Close despues de buscar.
- busca por faArchive, ahora solo estas buscando las carpetas (faDirectory) Un saludo
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
|
#6
|
||||
|
||||
|
Cita:
// Saludos |
|
#7
|
||||
|
||||
|
Cita:
Es un solo archivo del cual quiero rescatar el nombre, solo hay un solo archivo... Cita:
Nombre.Close -> No aparece el método Close faArchive -> Lo hice y no pasa nada. Estoy con delphi 7 Saludos. |
|
#8
|
||||
|
||||
|
Examina lo que significa la llamada a FindFirst.
FindFirst(Dir, faDirectory, Nombre); busca los directorios (faDirectory) cuyo nombre corresponda a Dir. Si el directorio existe, sus datos se colocan en la variable Nombre y de aquí que lo que obtienes es el nombre del directorio que pasas en Dir. FindFirst(Dir, faArchive, Nombre); busca los archivos (faArchive) cuyo nombre corresponda a Dir. Si Dir es, por ejemplo, 'C:\Temp', FindFirst busca un archivo cuyo nombre sea 'C:\Temp', que no existe y por ello no te devuelve nada. El punto está en la frase "cuyo nombre corresponda a". El primer parámetro de FindFirst puede incluir comodines. Así que lo más adecuado sería: FindFirst(Dir + '\*.*', faArchive, Nombre); De esta manera, si como en el ejemplo Dir es 'C:\Temp', FindFirst buscará los archivos cuyo nombre corresponda a 'C:\Temp\*.*', es decir, cualquier archivo dentro del directorio C:\Temp y pondrá en Nombre los datos del primero que encuentre o devolverá <> 0 si no hay ninguno. Para cerrar la búsqueda usa FindClose. // Saludos |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|