PDA

Ver la Versión Completa : Trabajando con archivos


!3d1@n
18-02-2005, 20:52:41
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 ..

Héctor Randolph
18-02-2005, 21:42:52
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.

!3d1@n
22-02-2005, 17:14:26
Grasias Hector :
:rolleyes: 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 .

marto
22-02-2005, 17:24:11
Wop!

truco 168 de trucomania

!3d1@n
22-02-2005, 19:13:51
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

marcoszorrilla
22-02-2005, 19:19:00
Me temo que Marto se refería al truco 158.

Un Saludo.

!3d1@n
22-02-2005, 22:12:35
OK , Luego les comento ...
Gracias !!!:p

marto
22-02-2005, 23:48:18
Me temo que Marto se refería al truco 158.


pues va a ser que sí ;D

!3d1@n
23-02-2005, 19:32:58
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.


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.

marto
23-02-2005, 20:29:13
Wop!

Mezclando tu algoritmo con el de trucomanía...

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

!3d1@n
23-02-2005, 21:10:52
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.

marto
23-02-2005, 21:30:46
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

Mi correo es joseledian@yahoo.es

En los foros no se contesta a preguntas de manera privada ;)

!3d1@n
28-02-2005, 15:27:40
Gracias a todossssssssssssss ...