el Guille, la Web del Visual Basic, C#, .NET y más...

gsBuscarTexto v2.0.5.1

 
Publicado el 08/Feb/2008
Actualizado el 10/Feb/2008
Autor: Guillermo 'guille' Som

Te recomiendo que veas la nueva versión del 10/Feb/08 (2.0.6.7)


Nueva actualización (muy mejorada) de la utilidad de buscar ficheros (y textos en esos ficheros). En esta revisión hay un montón de novedades... como que puedes usar esta utilidad en el menú contextual de las carpetas de Windows... y mucho más.



 

Introducción:

En esta nueva revisión (que incluso se merece un cambio de versión, pero... en fin... que así también vale), pues eso... que le he puesto un montón de cosas, entre las que te puedo destacar:

Tiene una ventana Acerca de... je, je, je, sí, la tiene, pero eso es una chorradilla, je, je, si esa fuera la mejor "mejora"... pues apañaos estábamos... je, je.

En serio, una de los cambios es que puedes usar esta utilidad desde el menú contextual del Windows, es decir, seleccionas las carpetas en las que quieras buscar y desde la propia ventana del directorio (o unidad) que tienes abierta puedes echar a andar esta super-mega-utilidad ;-))) (no me hagas mucho caso, que cuando estoy sin dormir, desvarío más de la cuenta).
En las figuras 1 y 2 tienes unas capturas (en Windows XP y Windows Vista respectivamente) para que lo entiendas mejor:

Figura 1. El menú contextual en Windows XP
Figura 1. El menú contextual en Windows XP

Figura 2. El menú contextual en Windows Vista
Figura 2. El menú contextual en Windows Vista

Para tener esta característica, he tenido que dar soporte a que se acepten directorios como argumentos de la línea de comandos, por tanto, también puedes arrastrar los directorios a un acceso directo de la utilidad y los usará todos en la caja de textos donde se indican los directorios en los que queremos buscar.

Fíjate en la figura 3, en la que están todos esos directorios (15) que seleccioné en la figura 2. Como puedes ver también, en Windows Vista (si tienes activado el UAC), al abrirlo de esa forma, la utilidad se inicia como usuario normal. En XP no pasa eso, ya que si trabajas como administrador, ¡siempre eres administrador!

Figura 3. Los directorios indicados se muestran en el combo de directorios
Figura 3. Los directorios indicados se muestran en el combo de directorios

De todas formas, en Windows Vista solo necesitas ejecutar la aplicación como administrador si quieres que tenga esa funcionalidad de añadirse como opción al menú contextual de las carpetas del explorador de Windows.

En las figuras 4 y 5 tienes las dos formas, la primera como administrador, y la segunda como usuario normal. 

Figura 4. Para activar la opción del menú contextual hay que ejecutarlo como administrador
Figura 4. Para activar la opción del menú contextual hay que ejecutarlo como administrador

Figura 5. Para activar la opción del menú contextual hay que ejecutarlo como administrador
Figura 5. Para activar la opción del menú contextual hay que ejecutarlo como administrador

Fíjate también en la figura 5, que aunque está deshabilitada esa opción, se muestra si está registrado o no. Por eso, si vas a usar esta utilidad con Windows Vista, solo necesitas ejecutarla como administrador (Run as administrator) si vas a cambiar eso, para el resto de cosas te funcionará a la perfección. De todas formas, el icono del escudo ese te dará una pista de en qué modo lo estás ejecutando.

Si quieres quitar ese menú contextual, lo puedes hacer entrando nuevamente en la ventana de configuración y quitando la selección (marca) de esa opción.

Nota:
Quiero agradecer a RFOG por darme el link a un post del colega Enrique Cortés (MVP) en el que explica cómo modificar el registro de Windows para poner programas en el menú contextual de las carpetas de Windows.

Este es el link al artículo: http://ekort.blogspot.com/2007/02/acceso-directo-ms-dos-desde-carpetas.html

 

Resumen de las novedades de la utilidad

Como te dije antes, la utilidad tiene muchas cosas nuevas, pero en vez de explicártelas todas, te relaciono la mayoría de ellas (digo la mayoría, porque seguro que se me habrá escapado alguna):

  • -Se pueden indicar directorios desde la línea de comandos o arrastrándolos al acceso directo del programa
  • -Añado acerca de
  • -Se comprueba si se ejecuta como administrador
  • -Opciones de la línea de comandos.
    • Se permiten:
      /h, Muestra la ventana de la ayuda
      /usardir, Al soltar directorios, si se mantiene lo que ya hubiera en el combo Directorios
      /nobuscar, Desactiva la opción de buscar (predeterminado con el menú contextual)
      /buscar, Activa la opción de buscar texto
      /nofecha, Desactiva la opción de buscar por fecha (predeterminado con el menú contextual)
      /fecha, Activa la opción de buscar por fecha
      /sub, Activa la opción de buscar en subdirectorios (predeterminado con el menú contextual)
      /nosub, Desactiva la opción de buscar en subdirectorios
      /noerror, Activa la opción de ignorar errores (predeterminado con el menú contextual)
      /error, Desactiva la opción de ignorar errores
      /reg+, Registra el programa en el menú contextual del explorador de Windows
      /reg- Quita el programa del menú contextual del explorador de Windows
  • -Añadir una opción al menú contextual del explorador de Windows
  • -Ventana de configuración para esta nueva funcionalidad
  • -Cambio a aplicación de una instancia, para soportar varios directorios desde el menú contextual
  • -Ayuda de los comandos que se pueden usar
  • -Al buscar textos, se puede buscar línea a línea o en el fichero completo
  • -Varios cambios menores en los totales mostrados
  • -Opción para mostrar los ficheros hallados (será más lento)
  • Opción en el botón de buscar
  • -En configuración poder restaurar tamaño ventana principal
  • -En configuración opciones para el directorio de la configuración
  • -Guarda los datos de configuración en los documentos del usuario (Cada vez que se cambia de versión, se resetean...)
  • -Se puede indicar el directorio en el que se guardará

 

Una de las mejoras de la versión anterior (v2.0.2.3 del 29 de Dic'07) es que hacía más rápida la búsqueda, principalmente porque no se mostraban los ficheros conforme los iba encontrando. Pues bien, en esta versión sigue siendo igual de rápida, pero le he puesto la opción de poder ver lo que va encontrando, por supuesto, si se muestran los ficheros conforme los analiza, será más lento que si solo los muestra al finalizar la búsqueda.

En la figura 6 tienes una captura de dónde están esas opciones, ya que las he incluido en el mismo botón de buscar. Y si quieres saber cómo se hace eso con un botón normal... pues tendrás que esperar a que publique el código, que seguramente lo haré solo para los que colaboran con PayPal, para los que no queráis pagar nada (yo no obligo a nadie a que pague), simplemente tenéis el ejecutable, que no es poco ;-))))

Figura 6. Las opciones de mostrar o no lo que va encontrando
Figura 6. Las opciones de mostrar o no lo que va encontrando

Por si te interesa saber los tiempos, te diré que en una búsqueda en 5.656 directorios con 20.371 ficheros, encontró 4.537 en un tiempo de: 38 coma 21 segundos mostrando los ficheros conforme los encontraba, y de 13 coma 49 segundos sin mostrar lo que hallaba (hasta el final, claro, porque si no muestra nada... pues ya me dirás).

Por supuesto, esto es porque buscaba ficheros con dos extensiones distintas (vb y cs), que si hubiera buscado solo una, habría tardado menos. Salvo si se busca con *.*, que en este caso concreto, tardó 20 coma 39 segundos en encontrar los 20.371 ficheros que había, pero sin mostrarlos, y mostrándolos, le costó casi 10 segundos más: 29 coma 93 segundos.

La ventaja de ir mostrando lo que encuentra es que parece menos aburrido, incluso se pueden ir abriendo los ficheros o las carpetas... eso sí, si no se desplazan mientras va mostrando... je, je. No, en serio, no se desplaza nada, salvo que muevas la barra de desplazamiento al final del todo, y más que nada por el tema de que el cacharrico ese del scroll se hace más chiquitillo...

De todas formas, esto de los tiempos es relativo, y no me refiero a la relatividad de Einstein, sino que el propio Windows va guardando un caché de las cosas que usamos, y si repites la misma búsqueda varias veces, pues... que no siempre consigues los mismos tiempos, por ejemplo, ahora acabo de darle nuevamente y me ha tardado solo 17.57 segundos.

Bueno, dejemos los tiempos... que así se me pasa tanto idem escribiendo estas cosas, como me enrollo más que una persiana, pues pasa lo que pasa... en fin...

 

Formas de buscar varias cadenas

Otro de los cambios interesantes de esta revisión, es que al buscar textos en los ficheros, cuando se indican dos cosas, por ejemplo con AND, ahora se puede hacer que se busquen esas dos cosas en la misma línea o bien en todo el fichero.

No, no es lo mismo. Por ejemplo, si buscas "ShowWindows" Y "User32.dll" y tienes estas líneas de código:

Private Declare Function ShowWindow Lib "user32.dll" _
    (ByVal hWnd As Integer, ByVal nCmdShow As Integer) As Integer

Lo encontrará tal como estaba en la versión anterior, ya que ambas palabras están en la misma línea.

Pero si tienes esto:

<DllImport("user32.dll")> _
Public Function ShowWindow( _
            ByVal hWnd As Integer, _
            ByVal nCmdShow As SWValues) As Integer

Solo lo encontrará si se busca en todo el fichero, no línea por línea.

Y para cambiar la forma de buscar, solo tienes que hacer clic en la opción esa nueva que hay en el panel de la búsqueda.

 

Bueno, te dejo, que... en fin... que ya está bien...

Bájate el ejecutable y lo pruebas, que seguro que te es de mucha utilidad. Y ya sabes, si te sobran unos "céntimos", pues los vas ahorrando hasta que tengas para invitarme a algo, je, je.

 

Nos vemos.
Guillermo


Código de ejemplo (comprimido):

Mira en la última actualización de gsBuscarTexto para ver la versión actual del ejecutable y poder descargarlo, ya que la que había aquí era de una versión anterior.

 

Otros links anteriores con el código fuente:

 


 


Haz tu donativo a este sitio con PayPal
 

Busca en este sitio con Google
 
Google

La fecha/hora en el servidor es: 28/03/2024 22:34:00

La fecha actual GMT (UTC) es: 

©Guillermo 'guille' Som, 1996-2024