Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-06-2004
Avatar de DarkByte
DarkByte DarkByte is offline
Miembro
 
Registrado: sep 2003
Ubicación: Desconocido
Posts: 1.322
Poder: 24
DarkByte Va por buen camino
Bueno, ya lo he conseguido, la duda era que no sabía eliminar el if de la búsqueda recursiva.
Código Delphi [-]
procedure Rastrear (Dir:string);
   var
      FileSearch:  TSearchRec;
   begin
     Screen.Cursor := crHourGlass;
     ChDir ( Dir );
     if FindFirst ( '*.*', faDirectory, FileSearch )=0 then
     repeat
       begin
         //Pon aqui lo que quieras hacer con los ficheros encontrados
         Form1.Memo1.Lines.Add (FileSearch.Name);
       end;
     until FindNext( FileSearch ) <> 0;
     FindClose( FileSearch );
     Screen.Cursor := crDefault;
  end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Rastrear ('C:\');
end;
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.
__________________
:)
Responder Con Cita
  #2  
Antiguo 16-06-2004
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
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;
cmask := '*.jpg';
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.
Responder Con Cita
  #3  
Antiguo 16-06-2004
Avatar de DarkByte
DarkByte DarkByte is offline
Miembro
 
Registrado: sep 2003
Ubicación: Desconocido
Posts: 1.322
Poder: 24
DarkByte Va por buen camino
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
__________________
:)
Responder Con Cita
  #4  
Antiguo 03-08-2005
Avatar de lucasarts_18
lucasarts_18 lucasarts_18 is offline
Miembro
 
Registrado: mar 2005
Ubicación: Villa Alemana,Chile
Posts: 1.087
Poder: 23
lucasarts_18 Va por buen camino
Hola:

Tengo un problemita con esta función, espero sus ayudas

Código Delphi [-]
 
 
function TFrmDistribuidor.LeerArchivo (Dir : String) : String;
var
  Nombre : TSearchRec;
  NomFile : String;
begin
  if FindFirst(Dir,faDirectory,Nombre) = 0 then
      NomFile := Nombre.Name;

  LeerArchivo := NomFile;
end;

En vez de devolverme el nombre del archivo, me devulve el nombre de la carpeta.

Saludos.
Responder Con Cita
  #5  
Antiguo 03-08-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
- 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.
Responder Con Cita
  #6  
Antiguo 03-08-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por lucasarts_18
En vez de devolverme el nombre del archivo
¿El nombre de cuál archivo quieres obtener?

// Saludos
Responder Con Cita
  #7  
Antiguo 03-08-2005
Avatar de lucasarts_18
lucasarts_18 lucasarts_18 is offline
Miembro
 
Registrado: mar 2005
Ubicación: Villa Alemana,Chile
Posts: 1.087
Poder: 23
lucasarts_18 Va por buen camino
Cita:
Empezado por roman
¿El nombre de cuál archivo quieres obtener?

Saludos
Hola.

Es un solo archivo del cual quiero rescatar el nombre, solo hay un solo archivo...

Cita:
Empezado por Lepe

- Cierra la búsqueda con Nombre.Close despues de buscar.
- busca por faArchive, ahora solo estas buscando las carpetas (faDirectory)

Hola:

Nombre.Close -> No aparece el método Close
faArchive -> Lo hice y no pasa nada.

Estoy con delphi 7

Saludos.
Responder Con Cita
  #8  
Antiguo 03-08-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
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
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:25:46.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi