Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-02-2005
Avatar de !3d1@n
!3d1@n !3d1@n is offline
Miembro
 
Registrado: ene 2005
Ubicación: Ciudad Habana - Cuba
Posts: 46
Poder: 0
!3d1@n Va por buen camino
Question Trabajando con archivos

Holas a todos en este foro:
Pues hoy les traigo las siguiente interrogante ???

1)¿Habrá alguna función que me devuelva la cantidad de ficheros (o archivos) existentes en un directorio (o carpeta)?

2) ¿Habrá alguna función que me devuelva el nombre si lo desconociera, de un ficheros (o archivos) existentes en un directorio (o carpeta)?

grasias a todos ..
__________________
Saludos ... JLedian.
Responder Con Cita
  #2  
Antiguo 18-02-2005
Avatar de Héctor Randolph
[Héctor Randolph] Héctor Randolph is offline
Miembro Premium
 
Registrado: dic 2004
Posts: 882
Poder: 20
Héctor Randolph Va por buen camino
Mi sugerencia es la siguiente.

Hola amigo!

Tal vez existan muchas formas de hacer esto, la que yo conozco es utilizando las funciones FindFirst(), FindNext() y FindClose() de la unidad Sysutils.

Busca en la ayuda de Delphi el uso de estas tres funciones que trabajan juntas.

Un saludo.
Responder Con Cita
  #3  
Antiguo 22-02-2005
Avatar de !3d1@n
!3d1@n !3d1@n is offline
Miembro
 
Registrado: ene 2005
Ubicación: Ciudad Habana - Cuba
Posts: 46
Poder: 0
!3d1@n Va por buen camino
Angry ¿FindNext()?

Grasias Hector :
Pero no se como usarlas, por lo que no sabré desirle si me a de servir. ¿Me podrías poner algun ejemplo? Se lo agradesería también.

Por favor si alguien me daría otra via se lo agradesería muchisimo. Grasias .
__________________
Saludos ... JLedian.
Responder Con Cita
  #4  
Antiguo 22-02-2005
Avatar de marto
marto marto is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona, Catalunya
Posts: 882
Poder: 21
marto Va por buen camino
Wop!

truco 168 de trucomania
__________________
E pur si muove
Responder Con Cita
  #5  
Antiguo 22-02-2005
Avatar de !3d1@n
!3d1@n !3d1@n is offline
Miembro
 
Registrado: ene 2005
Ubicación: Ciudad Habana - Cuba
Posts: 46
Poder: 0
!3d1@n Va por buen camino
Thumbs down No es lo que busco

Hola Marto :
Acudí al truco 168 del Trucomanía como planteaste pero lo que sale es como reducir el tamaño de un ejecutable. Y lo que busco es una función que me devuelva la cantidad de archivos de un directorio.

Pero te agradezco . Gracias
__________________
Saludos ... JLedian.
Responder Con Cita
  #6  
Antiguo 22-02-2005
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Me temo que Marto se refería al truco 158.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #7  
Antiguo 22-02-2005
Avatar de !3d1@n
!3d1@n !3d1@n is offline
Miembro
 
Registrado: ene 2005
Ubicación: Ciudad Habana - Cuba
Posts: 46
Poder: 0
!3d1@n Va por buen camino
Thumbs up Ok

OK , Luego les comento ...
Gracias !!!
__________________
Saludos ... JLedian.
Responder Con Cita
  #8  
Antiguo 22-02-2005
Avatar de marto
marto marto is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona, Catalunya
Posts: 882
Poder: 21
marto Va por buen camino
Cita:
Empezado por marcoszorrilla
Me temo que Marto se refería al truco 158.
pues va a ser que sí ;D
__________________
E pur si muove
Responder Con Cita
  #9  
Antiguo 23-02-2005
Avatar de !3d1@n
!3d1@n !3d1@n is offline
Miembro
 
Registrado: ene 2005
Ubicación: Ciudad Habana - Cuba
Posts: 46
Poder: 0
!3d1@n Va por buen camino
Lightbulb Como usar FindFirst() ...

Hola ...
Les comento que me alegra muchísimo haber podido encontrar esa función (la 158 del Trucomanía), pero ... en si no es lo que necesito.
Les explico mejor:
Supongamos que tengo en esta dirección (c:\arc) x cantidad de Archivos, lo cual necesito saber el valor de esa x (es desir la cantidad de archivos que contiene la carpeta arc que esta en c:\) .

nota : Estos archivos sus atributos son normales, es desir no estan ocultos ni tampoco son de solo lectura.

Tomando lo de HECTOR RANDOLPH (FindFirst, FindNext, FindClose) tengo la sgte idea pero me gustaria que me ayudaran a formularla.

Código Delphi [-]
var 
i : integer;
Procedure ...
begin
if (mando a buscar el primer archivo) then
         begin 
         Repeat
         inc(i) ;
         Until (hasta que ya no halla próximo fichero) 
         Cierro la busuqeda.
         end;
ShowMessage(IntToStr(i)); // en i obtengo la cantidad de ficheros.
end;

Bueno como vieron este es el adgoritmo que creo que me solucionará mi cuestión, por favor no creo que este del todo mal pero me gustaría que me comentaran hacerca de el. Y lo mas importante es que no se como emplear el Findfirst, FindNext y FindClose.

nota : Estube viendo la ayuda de delphi pero les seré sincero, no la he entendido aun.

En espera de su Ayuda un servidor.
__________________
Saludos ... JLedian.

Última edición por !3d1@n fecha: 23-02-2005 a las 20:18:26. Razón: Corrección
Responder Con Cita
  #10  
Antiguo 23-02-2005
Avatar de marto
marto marto is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona, Catalunya
Posts: 882
Poder: 21
marto Va por buen camino
Wop!

Mezclando tu algoritmo con el de trucomanía...
Código Delphi [-]
function CuentaArchivos(path: AnsiString): Integer;
var
  srRes : TSearchRec;
  iFound : Integer;
begin
  //nos aseguramos que el path sea más o menos correcto
  if path[Length(path)] <> '\' then
    path := path +'\';
  //
  //Indicamos que queremos todos los archivos en la ruta
  //menos los directorios
  iFound := FindFirst(path+'*.*', faAnyFile-faDirectory, srRes);
  //inicializamos el contador
  Result := 0;
  //mientras haya archivos en el directorio
  while iFound = 0 do
  begin
   //si el archivo no es uno de los especiales (. y ..)
   //incrementeo el contador
   if ( srRes.Name <> '.' ) and ( srRes.Name <> '..' ) and ( srRes.Name <> '' ) then
     Inc(Result);
   //paso al siguiente archivo
   iFound := FindNext(srRes);
  end;
  //cierro la busqueda
  FindClose( srRes );
end;

Si te fijas, he quitado la parte recursiva (que te podría servir si quieres contar los archivos que hay en subcarpetas) y, en lugar de añadir los nombre a una stringlist, los he contado
__________________
E pur si muove
Responder Con Cita
  #11  
Antiguo 23-02-2005
Avatar de !3d1@n
!3d1@n !3d1@n is offline
Miembro
 
Registrado: ene 2005
Ubicación: Ciudad Habana - Cuba
Posts: 46
Poder: 0
!3d1@n Va por buen camino
Thumbs up Funciones ..

Siiiiiiiiiiiiiiiiiiiiiip ... Ahora si ... Mil gracias, era eso justo lo que queria.

Nota : Por cierto me gustaría saber como crear funciones y modificarlas.¿Será muy dificil? ¿Que me aconsejas? Sabes donde puedo obtener algunos manuales, tutoriales, o algo similar por donde guiarme ??? Mi correo es joseledian@yahoo.es
De todas formas les agradezco a todos... y en especial a Marto.
__________________
Saludos ... JLedian.
Responder Con Cita
  #12  
Antiguo 23-02-2005
Avatar de marto
marto marto is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona, Catalunya
Posts: 882
Poder: 21
marto Va por buen camino
Cita:
Empezado por !3d1@n
Nota : Por cierto me gustaría saber como crear funciones y modificarlas.¿Será muy dificil? ¿Que me aconsejas? Sabes donde puedo obtener algunos manuales, tutoriales, o algo similar por donde guiarme ???
Qualquier libro de Delphi... mi preferido es "La cara oculta de delphi", puedes bajarte la version 4 de la web del autor, www.marteens.com o comprarte la 6
Cita:
Empezado por !3d1@n
Mi correo es joseledian@yahoo.es
En los foros no se contesta a preguntas de manera privada
__________________
E pur si muove
Responder Con Cita
  #13  
Antiguo 28-02-2005
Avatar de !3d1@n
!3d1@n !3d1@n is offline
Miembro
 
Registrado: ene 2005
Ubicación: Ciudad Habana - Cuba
Posts: 46
Poder: 0
!3d1@n Va por buen camino
Thumbs up Ok

Gracias a todossssssssssssss ...
__________________
Saludos ... JLedian.
Responder Con Cita
Respuesta



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 09:22:28.


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