Shell 05-12-2022, 15:59
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 Big Grin , como para saber que es eso con ese nombre. Tongue

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í. Rolleyes

Código:
Public Sub EncontrarCadenaRecursivamenteEnArchivosDeUnDirectorio(ruta As String, palabra As String, Optional separador As String = ":") As String[]
 
  Dim archivo As String
  Dim partesdeunaruta As String[]
  Dim slista As String
  Dim arepes As New String[]
  Dim asinrepes As New String[]
  Dim pos As Integer
 
  Shell "grep" & " -ir " & palabra & " " & ruta To slista
 
  For Each archivo In Split(slista, "\n")
    pos = InStr(archivo, separador)
    If pos > 0 Then arepes.Add(Left(archivo, pos - 1))
  Next
 
  For Each archivo In arepes
    partesdeunaruta = Split(archivo, "/", "'", True)    
    If Not asinrepes.Exist(partesdeunaruta[partesdeunaruta.Max - 2]) Then asinrepes.Add(partesdeunaruta[partesdeunaruta.Max - 2])    
  Next
 
  Return asinrepes.Sort()
 
End

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. Smile

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()
 
  Dim lista As New String[]
  Dim nombre As String
  Dim ruta As String = "ruta_a_tus_proyectos_Gambas"
 
  TextArea1.text = ""
 
  lista = EncontrarCadenaRecursivamenteEnArchivosDeUnDirectorio(ruta, "Paint")
 
  For Each nombre In lista
    TextArea1.Text &= nombre & gb.NewLine  
  Next
 
End

Moraleja: Pon un buen nombre a tus proyectos y usa las dos cajas de texto.

Soy requerido en la cocina...

Saludos
Archivos adjuntos
.gz
BuscarCoincidencias2-0.0.1.tar.gz (Tamaño: 12.11 KB Descargas: 2)
Shordi 04-12-2022, 19:47
Los antecedentes de este hilo los tenéis aquí, el caso es que ahora uso Ubuntu Mate sobre un usb3 para la Raspberry Pi 4. Va genial. Nunca he usado Mate en serio... pero esta versión la 22.04 como que me ha entrado por el ojito derecho y me está molando un montón. Todo puesto y configurado (lástima del Gambas, que es la 3.16.3). Un icono en el escritorio abre la conexión VNC y tejemanejeo el escritorio de la Pi sin problemas y un Shell Script me permite entrar vía SSH. Ok. Perfecto.

Excepto, ¡cómo no!, en una cosita:
Si inicio la Pi sin tenerla conectada a una pantalla, VNC me da un escritorio por defecto, 1024 x no sé qué, y el GTK de la Pi genera una serie de mensajes recursivos que no sé qué efecto pueden tener en ella, pero que hacen que la conexión VNC vaya más lenta.

Si inicio la Pi con una pantalla conectada, Mate establece una arquitectura de escritorio de 1920 x 1080 sin problemas y VNC va fetén.

La interfaz gráfica de Mate no permite cambiar dicha resolución usando VNC y se hace necesario iniciar el ubuntu mate de la Pi con una pantalla conectada para que luego todo vaya bien.

Así pues la pregunta es ¿Alguien sabe cómo dejar Mate configurado a 1920 x 1080 por defecto aunque no exista un monitor para ser detectado en el arranque?

Sería una gran ayuda.

Saludos
Shordi 04-12-2022, 19:16
A partir de este hilo he vuelto a tejemanejear con la Raspberry Pi 4 ( a partir de ahora La Pi) y he descubierto que no siempre los esfuerzos que uno dedica sirven para mucho...

Quiero decir que he sufrido una serie de errores relativos a la wifi y a los usb que me han llevado a numerosos (muy numerosos) reintentos, reinstalaciones pruebas de distintas versiones de Linux, etc. etc. y al final he descubierto que todo ello era debido a las interferencias electrónicas de los dispositivos.

El caso es que mola eso de instalar el SO en un dispositivo USB3 externo. Las microusb molan, pero son muy frágiles y vives en un "temor" permanente de ir a arrancar u Pi y que no Pite (nótese el chiste malo). Así me compré uno SSD de 240 GB marca Emtec y en principio todo fue bien. Al cabo de un tiempo, en una reorganización de las docenas de cables que tengo serpenteando en la mesa coloqué el disco y la Pi una sobre otro unidos por una goma y con el cable que los une enrollado también en el paquetito. Como no uso mucho la Pi tardé en darme cuenta de los errores de disco que se generaban y de que la Pi no conseguía loguearse en la wifi.

Compré otro disco, un Samsung Evo SSD de 240 GB y una cajita adaptadora... y nada. Probé Raspbian, Debian, Budgie, lUbuntu, xface, etc. en varias versiones... y nada. Enconté en la web un montón de recetas y de cosas que según ellos puedes hacer, y que hice... y nada. Finalmente me rendí y durante un tiempo usé Budgie sobre una microusb de 32 GB. Hasta que la microusb empezó a dar mensajes de error en el arranque.

Finalmente, para probar cambios y cosas le quité la goma y separé la Pi del Disco unos centímetros. Todo funciona perfecto. O sea: putas interferencias.

Señor, señor...


Saludos
Páginas (564):    1 241 242 243 244 245 564   
Bienvenido, Invitado
Tienes que registrarte para poder participar en nuestro foro.
Recordarme?
Miembros: 292
Último miembro: Nicls_key
Temas del foro: 1,742
Mensajes del foro: 9,029
Últimos temas
Ordenar en un TableView
Foro: General
Último mensaje por: Shordi, Hace 1 hora
Respuestas: 3 - Vistas: 67
Odio a gb.Report
Foro: General
Último mensaje por: guizans, Ayer, 13:36
Respuestas: 9 - Vistas: 1,524
Reportes de Gambas
Foro: Aplicaciones/Fragmentos de Código
Último mensaje por: Alberto59, 27-10-2025, 16:34
Respuestas: 2 - Vistas: 1,321
Ordenando las carpetas
Foro: Programación en otros lenguajes
Último mensaje por: tercoide, 22-10-2025, 15:57
Respuestas: 0 - Vistas: 101
Powered By MyBB, © 2002-2025 MyBB Group.
Made with by Curves UI.