Este foro usa cookies
Este foro utiliza cookies para almacenar su información de inicio de sesión si está registrado y su última visita si no lo está. Las cookies son pequeños documentos de texto almacenados en su computadora; las cookies establecidas por este foro solo se pueden usar en este sitio web y no representan ningún riesgo de seguridad. Las cookies en este foro también rastrean los temas específicos que ha leído y la última vez que los leyó. Si Ud. continúa navegando, entenderemos que acepta todas las cookies.

Se almacenará una cookie en su navegador, independientemente de la elección, para evitar que se le vuelva a hacer esta pregunta. Podrá cambiar la configuración de sus cookies en cualquier momento utilizando el enlace en el pie de página.

El foro antiguo se encuentra accesible desde https://foro.gambas-es.org en modo de solo lectura.

Últimos temas

Estadísticas del foro
  • Mensajes del foro:4,786
  • Temas del foro:879
  • Miembros:167
  • Último miembro:alfonsoC3


Enviado por: Shell
29-07-2022, 18:40
Foro: General
- Sin respuestas

Buenas!.

Repasando un tema que se comentó en su día sobre las ventajas de la programación orientada a objetos frente a la procedimental.
Y viendo de nuevo el vídeo de Julio, en el código hace referencia a otra posibilidad de declarar una propiedad.
Haciendo referencia a la ayuda de gambas.

A ver que os parece la forma de declarar la propiedad.

La propiedad base se declara como hemos estado haciendo hasta una versión de Gambas.
Y la propiedad altura se declara usando una nueva forma. No tiene código de getter y setter.
No se crean automáticamente.

GAMBAS
  1.  
  2. Property altura As Integer Use haltura
  3.  
  4. Public Sub _new($ialtura As Integer, $ibase As Integer)
  5.  
  6.   haltura = $ialtura
  7.   hbase = $ibase
  8.  
  9.  
  10.  
  11.   Return (Me.base * Me.altura) / 2
  12.  
  13.  
  14.  
  15.   Return hbase  
  16.  
  17.  
  18. Private Sub base_Write(Value As Integer)
  19.  
  20.   hbase = Value
  21.  



Ademas si fuese necesario se puede modificar el código del getter y el setter, pero ya sería manualmente.
Habría que crear todo el código.

Se puede apreciar que la reducción de código es notable. 
Como todo cuesta acostumbrarse a usarla por primera vez y sobre todo recordarlo.

Property Declaration

Saludos

Imprimir


Enviado por: Shell
29-07-2022, 11:21
Foro: Mundo Linux
- Sin respuestas

Buenas!.

Tengo un árbol de directorios tal como este:
 

Cita:.
├── directorio1
│   └── archivo_dir1
├── directorio2
│   └── archivo_dir2
└── directorio3
    └── archivo_dir3

Y quiero evitar que el comando Find me muestre el contenido del directorio2. Imaginar que fuera mucho más grande.
Es necesario usar la opción "-prune" y "-o"

Bash
  1. find . -path ./directorio2 -prune -o -type f



La salida fue:
 
Cita: 
./directorio2
./directorio1/archivo_dir1
./directorio3/archivo_dir3

Podemos incluso excluir una lista de directorios. Ejemplo, no quiero mostrar los archivos contenidos en el directorio2 y el directorio3:

Bash
  1. find .  \( -path ./directorio2 -o -path ./directorio3 \) -prune -o -type f



Ahora imaginar que estamos en el directorio principal del sistema y queremos hacer una búsqueda para que nos muestre los archivos creados, modificados de hoy
"pero" que nos evite ver todo lo que cuelga del directorio "media"

Bash
  1. find . -path ./media -prune -o -type f -newermt $(date -I)



Probablemente tengamos que ejecutarlo como root.

Lo cierto es que en /media tengo una partición para almacenar cosas de windows y es que salían todas por la fecha de hoy (los permisos de windows),
si no usaba -prune -o

Hay otra opción pero no me funcionó como debiese, es usar "-not -path".

Creo que el orden de la instrucción última que os he mostrados es muy importante en la forma de como se escribe, podría no funcionar si no se
hace en un orden concreto.

Saludos

Imprimir


Enviado por: Shell
29-07-2022, 11:08
Foro: Mundo Linux
- Sin respuestas

Buenas!.

Cuando queremos buscar los archivos que se han modificados, creados (estos dos atributos supongo que son los que son) del día de hoy.
Podemos usar la opción "-newermt" del comando find.
Y para evitar tener que teclear la fecha en formato iso 8601 (yyyy-mm-dd) podemos usar el comando "date"

Quedando así:

Bash
  1. # Comando find. Buscar archivos por la fecha de hoy
  2.  
  3. find . -type f -newermt $(date -I)
  4.  
  5. # Comando find. Buscar archivos por una fecha
  6.  
  7. find . -type f -newermt 2022-03-16



Últimamente estoy usando un editor para Python que por lo visto solo existe en Windows y el libro que estoy leyendo es el que usa: PyScripter.
Una tontería ya que podía usar uno en Linux.

Al final acabo copiando los archivos que creé en windows a Linux, pero sus permisos están activos todos.
Así que para buscar por fecha y cambiar sus permisos por otros más coherentes uso de nuevo el comando find en el directorio de los archivos.

Bash
  1. # Buscar los archivos creados hoy y cambiar sus permisos.
  2.  
  3. find -type f -newermt $(date -I) -exec chmod 664 {} \;



Saludos

Imprimir