............ Foro Excel
Si no lo has hecho aún: REGISTRATE!!!

Buscar archivos con APIs de Windows

Ver el tema anterior Ver el tema siguiente Ir abajo

Buscar archivos con APIs de Windows

Mensaje por P@li el Miér Jul 29, 2009 9:08 pm

Hola Amigos!!

Hoy quiero aportar al foro, una clase basada en el uso de APIs de Windows, que tiene por finalidad buscar archivos alojados en una carpeta determinada.
Dejé en un módulo dos procedimientos de ejemplo, uno para una simple búsqueda, y otro para una búsqueda de archivos con determinado texto en su contenido.
Es muy probable que a esta clase se le puedan hacer modificaciones para mejorar su funcionamiento, cosa que si llegan a hacer, me gustaría que me lo comentaran, para evaluarlas y aplicarlas a la que tenemos acá colgada.

Espero que le encuentren utilidad, y cualquier comentario o consulta será bienvenida.

[Tienes que estar registrado y conectado para ver este vínculo]
[Tienes que estar registrado y conectado para ver este vínculo]
Hosted by [Tienes que estar registrado y conectado para ver este vínculo]

Saludos,
Pablo G. González.

P@li
Admin

Masculino Cantidad de envíos : 243
Edad : 34
Ciudad - Pais : Buenos Aires, Argentina
Version de Excel : Microsoft Excel 2002 (10.2614.2625)
Fecha de inscripción : 03/03/2008

Volver arriba Ir abajo

Re: Buscar archivos con APIs de Windows

Mensaje por federico ramirez marron el Jue Jul 30, 2009 2:51 pm

Bueno, le estuve buscando la aplicabilidad, como es una funtion, creo que deberia funcionar como tal, solo que no se como aplicar su sintaxis, de entrada se ve que esuna enorme aportacion, solo falta encontrarle!!!

Si podes mandar un cable!!
avatar
federico ramirez marron

Masculino Cantidad de envíos : 95
Edad : 43
Ciudad - Pais : acapulco, gro mexico
Fecha de inscripción : 03/03/2008

Volver arriba Ir abajo

Re: Buscar archivos con APIs de Windows

Mensaje por P@li el Jue Jul 30, 2009 3:29 pm

Hola Federico

En el módulo de mdPruebas, hay dos ejemplos, uno de los cuales voy a explicarlo con detalle:
Código:

'aca declaro la variable ff de tipo clsFindFile, que es una clase creada en ese archivo
'excel, quiero decir con esto, que si queres crear esta clase en otro archivo vas a
'tener que copiar alli el modulo de clase clsFindFile.
    Dim ff As clsFindFile
'esta variable va a ser un array, creada gracias a la funcion split
    Dim archivos

'ya declare la variable de tipo clsFindFile, ahora voy a crear el objeto
    Set ff = New clsFindFile
'en la proxima instruccion hay dos pasos en uno, para evitar codigo
'El primer paso es llamar a la funcion Find_file de la clase cldFindFile, dándole dos parametros:

' * El primero es la búsqueda en sí, puede ser el nombre de un archivo
'ej.: miarchivo.xls, o puede ser una busqueda más amplia,
'como *.* para que busque todos los archivos,
'o *.xls para que busque todos los archivos de tipo xls,
'o puede ser tambien d*.xls, para encontrar todos los xls que comiencen con la letra 

' * El segundo parametro es otro string, donde paso a la funcion la carpeta en la cual quiero buscar los archivos.

'La función devuelve un string, con el nombre de los archivos separados por el caracter "|".
'Entonces lo que hago es inmediatamente crear un array con la funcion split,
'en el primer parametro pongo la funcion Find_file, y en el segundo el caracter "|",
'llene el string con los archivos encontrados, y los almacene en la variable archivos.

    archivos = Split(ff.Find_File("*.*", "c:\"), "|")

'ahora voy a recorrer todos los archivos encontrados y almacenados en la variable array archivos
'para eso uso un bucle for...next como el siguiente
    For i = 0 To UBound(archivos)
'y acá imprimo el nombre del archivo en la ventana de inmediato, (Ver->Ventana Inmediato ó Crtl+G)
        Debug.Print archivos(i)
    Next
'ahora alimino la clase para liberar memoria
    Set ff = Nothing


Espero que la explicación se entienda.
No dudes en consultar cualquier otra cosa.

Saludos.

P@li
Admin

Masculino Cantidad de envíos : 243
Edad : 34
Ciudad - Pais : Buenos Aires, Argentina
Version de Excel : Microsoft Excel 2002 (10.2614.2625)
Fecha de inscripción : 03/03/2008

Volver arriba Ir abajo

Re: Buscar archivos con APIs de Windows

Mensaje por federico ramirez marron el Jue Jul 30, 2009 5:27 pm

Voy a probar su funcionalidad, espero poder

Saludos!!!
avatar
federico ramirez marron

Masculino Cantidad de envíos : 95
Edad : 43
Ciudad - Pais : acapulco, gro mexico
Fecha de inscripción : 03/03/2008

Volver arriba Ir abajo

Re: Buscar archivos con APIs de Windows

Mensaje por P@li el Jue Jul 30, 2009 7:11 pm

Seguro que si, gracias por tu comentario!!

P@li
Admin

Masculino Cantidad de envíos : 243
Edad : 34
Ciudad - Pais : Buenos Aires, Argentina
Version de Excel : Microsoft Excel 2002 (10.2614.2625)
Fecha de inscripción : 03/03/2008

Volver arriba Ir abajo

Re: Buscar archivos con APIs de Windows

Mensaje por jairga el Jue Jul 30, 2009 10:27 pm

Bastante tiempo sin aportar al foro, pero como siempre p@li con sus excelentes aportes enseñandonos muchas cosas.

Muchas gracias

Saludos

jairga
Moderador
Moderador

Masculino Cantidad de envíos : 163
Edad : 40
Ciudad - Pais : Cartagena-Barranquilla(Colombia)
Version de Excel : XP-2003-2007
Fecha de inscripción : 11/03/2008

Volver arriba Ir abajo

Re: Buscar archivos con APIs de Windows

Mensaje por P@li el Jue Jul 30, 2009 11:21 pm

Gracias por tu comentario Jairga!!!

Es cierto, hace rato que no entro para hacer aportes, no porque no haya querido, me escaseaba el tiempo para hacerlos, y a eso le agrego la falta de imaginación para traer algo novedoso o por lo menos útil, generalmente trato de basarme en algo que estén pidiendo por algún lado, y que sea aplicable a más de una circunstancia, pero no siempre llego a tiempo con mis respuestas.

Me gustaría "escuchar" opiniones sobre el aporte de evento doble clic sobre una celda, la solución es un tanto rebuscada, y además le falta terminar, es algo que había empezado a hacer con Gali en un post sobre HOOK en exceluciones, pero que quedo muerto, a raiz de una consulta que se hizo y aparentemente no tenía solución, volví a ese código para ver qué podía hacer al respecto.

Bueno espero que todos anden bien, saludos!!

P@li
Admin

Masculino Cantidad de envíos : 243
Edad : 34
Ciudad - Pais : Buenos Aires, Argentina
Version de Excel : Microsoft Excel 2002 (10.2614.2625)
Fecha de inscripción : 03/03/2008

Volver arriba Ir abajo

Re: Buscar archivos con APIs de Windows

Mensaje por jairga el Vie Jul 31, 2009 9:50 am

Hola p@li disculpame, cuando decia lo no aportar hablaba en nombre mío ya que tambien tengo mucho tiempo si participar activamente del foro, pero que bueno estemos de regreso y aun mas teniendote de vuelta al foro.


saludos a todos

Vamos a comenzar a estudiar el codigo sé que cualquier pequeña mejora ya es bastante

jairga
Moderador
Moderador

Masculino Cantidad de envíos : 163
Edad : 40
Ciudad - Pais : Cartagena-Barranquilla(Colombia)
Version de Excel : XP-2003-2007
Fecha de inscripción : 11/03/2008

Volver arriba Ir abajo

Re: Buscar archivos con APIs de Windows

Mensaje por GalileoGali el Sáb Ago 01, 2009 9:44 am

Estuve prácticamente ausente estos días, ya que estuve en Daireaux, distante 50 km., cubriendo la ausencia del gerente de esa filial.
Fui husmeando algunas cositas, pero con poco tiempo para opinar....

P@li: lo estuve probando, no analizando. Bueno, una de las cosas que vi es que no está planteado algún algoritmo recursivo, como para adentrarse en el contenido de las subcarpetas y las subcarpetas de estas....
Lo que aun no descubro y supongo que tienes tus razones, es la diferencia entre tu codigo para listar archivos y el uso de Dir. Tengo que reconocer que mis comentarios son un tanto "a la ligera", pero "me encuentro arribando a tomar el tren varias estaciones adelante....."

_________________
GalileoGali
M.A.P. 2010-2013
Microsoft Active Professional
avatar
GalileoGali
Admin

Masculino Cantidad de envíos : 1963
Edad : 62
Ciudad - Pais : QUIROGA, Argentina
Version de Excel : 2000-2003-2007-2010
Fecha de inscripción : 24/01/2008

http://excelgali.mejorforo.net

Volver arriba Ir abajo

Re: Buscar archivos con APIs de Windows

Mensaje por P@li el Sáb Ago 01, 2009 11:40 am

Gali,
Cuando empece a programar en asp, una de las primeras cosas que advertí, fue la falta de Dir en ese entorno de programacion, por lo que en principio recurrí al objeto FileSytemObject, el problema era que este objeto devolvía todos los archivos de una carpeta, y en esa carpeta tenía cerca de 2000 archivos, entonces tenía el problema de la lentitud.

En ese momento se me ocurrió hacer una dll activeX, con VB6.0, instalarla en el servidor y poder usar algo distinto a FileSytemObject.

Primero use Dir, y no se por qué no me resulto, el tiempo había disminuido, pero supongo que opté por una solución con APIs por ser más rápida.

En definitiva lo que hace Dir, es usar la API de Window, si en vez de recurrir a Dir, vamos directamente a la API, me parece que ahorramos un paso y por eso ha de ser más rápido.

P@li
Admin

Masculino Cantidad de envíos : 243
Edad : 34
Ciudad - Pais : Buenos Aires, Argentina
Version de Excel : Microsoft Excel 2002 (10.2614.2625)
Fecha de inscripción : 03/03/2008

Volver arriba Ir abajo

Re: Buscar archivos con APIs de Windows

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


 
Permisos de este foro:
No puedes responder a temas en este foro.