Buscar en los archivos de los proyectos que contienen internamente una palabra - Versión para impresión +- Comunidad Gambas-es (https://gambas-es.org) +-- Foro: Gambas (https://gambas-es.org/forum-3.html) +--- Foro: General (https://gambas-es.org/forum-4.html) +--- Tema: Buscar en los archivos de los proyectos que contienen internamente una palabra (/thread-1124.html) |
Buscar en los archivos de los proyectos que contienen internamente una palabra - Shell - 05-12-2022 Buenas!. Hace un tiempo creé un ejemplo y no había forma de recordar su nombre. ( Rebuscado que soy a veces ). Imaginar le puse "distancias" como nombre , como para saber que es eso con ese nombre. Como era un proyecto gráfico la solución más simple era encontrar la palabra "Paint" dentro de muchos archivos y proyectos de Gambas. Como no sé si es posible hacerlo con Gambas directamente, me apoyé en el comando grep de bash. Cuando uso la instrucción grep, este me devuelve el nombre de la ruta, ":" y donde se encuentra, ejemplo: Cita: /home/miusuario/Programacion/PracticasGambas/PracticaTemporal/EjemploMultipleTemporal/.src/Cuadrado.class: Paint.LineWidth = 2 Con eso sabemos que el separador es ":" ¿ Qué nos podemos encontrar ?. Que la palabra Paint se repita muchas veces "por ejemplo" en el archivo Cuadrado.class Entonces voy descalificando nombres de archivos repetidos para que solo me lo muestre una vez. Esa es la función principal. No he usado reloj para que el usuario se enfade. (Cuando el proceso tarda y no sabemos que se ha colgado la aplicación). Es que no se lo añadí. Código: Public Sub EncontrarCadenaRecursivamenteEnArchivosDeUnDirectorio(ruta As String, palabra As String, Optional separador As String = ":") As String[] Me he centrado en buscar solo archivos que contengan "Paint". Y esto es el código del botón que llama a esa función. Como son cosas de probar rápido he usado un Textarea. El nombre del proyecto por defecto lo encuentro, dos pasos más atrás de la ruta completa comenzando por la derecha. El array partesdeunaruta contiene cada elemento una parte de la ruta como dice su nombre. Con este averiguo el nombre del proyecto. Todo muy simple. Código: Public Sub btnBuscar_Click() Moraleja: Pon un buen nombre a tus proyectos y usa las dos cajas de texto. Soy requerido en la cocina... Saludos RE: Buscar en los archivos de los proyectos que contienen internamente una palabra - cogier - 05-12-2022 ¿Ayudará esto? InFile RE: Buscar en los archivos de los proyectos que contienen internamente una palabra - Shordi - 05-12-2022 ¿Has probado los comandos "grep -r ..." y "rgrep" Saludos RE: Buscar en los archivos de los proyectos que contienen internamente una palabra - Shell - 06-12-2022 (05-12-2022, 20:59)Shordi escribió: ¿Has probado los comandos "grep -r ..." y "rgrep" Si, vuelco la salida en una cadena. Con rgrep no he probado. (05-12-2022, 18:37)cogier escribió: ¿Ayudará esto? Este si. Vaya, si que le dedicaste código. Desde luego te esmeraste creándolo. Gracias. Saludos |