Dedicado a mis proyectos en Gambas ,un lenguaje de programación parecido al Visual Basic + Java pero ampliamente mejorado y...¡¡para gnu/linux!!.La potencia del gnu/linux sumada a la facilidad del Basic



Consultas, Desarrollo de programas y petición de presupuestos:



lunes, 28 de noviembre de 2011

¿tu contraseña es segura? Comprobador de Contraseñas/Password


¿como saber si nuestra
 contraseña es segura?

Esta es una dirección web que me ha pasado jguardon, el administrador del foro de gambas-es.org ,  para comprobar si nuestras contraseñas son seguras:





Saludos

sábado, 19 de noviembre de 2011

Gambas: Convenciones Acerca de Nombres de Variables

En este enlace del gambasdoc, podeis ver reglas para nombrar variables, algo muy interesante para facilitar compartir códigos:




Prefijos convenidos para tipos comunes de variables

Tipo de variablePrefijo
Integeri
Floatf
Booleanb
Bytebt
Shortsh
Longl
Singlesng
Variantv
Pointerptr
Strings
Datedate
Objecto

Prefijos convenidos para matrices o colecciones

Tipo de variablePrefijo
Matriz estáticaar + prefijo de tipo
Integer[]ari
Float[]arf
Boolean][]arb
Byte][]arbt
Short[]arsh
Long[]arl
Single[]arsng
Variant[]arv
String[]ars
Date[]ardate
Object[]aro
Collectioncol

Tipos especiales

Tipo de variablePrefijo
Filefi
Processproc

Prefijos de ejemplo para algunos componentes

Tipo de variablePrefijo
Formfrm
TextBoxtxtb
TextAreatxta
ListBoxlstb
ComboBoxcbo
Timertmr
Buttonbut
ToggleButtontglbut
ToolButtontbut

Como comprobar si ya esta ejecutandose el mismo programa: comando PS y Gambas


Comando ps en Gambas

Algunas veces nos interesa saber si nuestro programa se esta ejecutando por una 2º vez.
En gnu/linux, tenemos el comando "ps" que nos muestra los programas que se esten ejecutando, con el argumento "a", nos va a mostrar todas los programas que se esten ejecuntado en las distintas terminales.



¿como poder usar este comando en Gambas?
Una opción es usarlo con el comando "Shell", por ejemplo, creo un modulo llamado "comprobar" y este es su codigo:

' Gambas module file
' nombre: es el nombre de la aplicacion que estamos buscando ver si esta ejecutandose 2 veces.
PUBLIC SUB ejecucion(nombre AS String) AS Boolean
DIM texto AS String
DIM buscar AS Integer
DIM buscar2 AS Integer

SHELL ("ps a >" & User.home & "/temporal.process") WAIT

texto = File.Load(User.home & "/temporal.process")
KILL User.home & "/temporal.process" ' para no dejar restos
buscar = InStr(texto, nombre)
IF buscar <> 0 THEN
buscar2 = InStr(Mid$(texto, buscar + Len(nombre), Len(texto)), nombre)
IF buscar2 <> 0 THEN
'se ha encontrado una 2º ejecucion
RETURN TRUE
ELSE
RETURN FALSE
ENDIF
ENDIF
RETURN FALSE
END


En este código con la orden: SHELL ("ps a >" & User.home & "/temporal.process") WAIT
vamos a crear un archivo "temporal.proccess", que va a contener la salida que genera el "ps a" (para ello usamos el redireccionamiento ">".

luego cargamos el contenido de este archivo en la variable texto:
texto = File.Load(User.home & "/temporal.process")
Y empazamos a analizalo:
Primero buscamos si existe dentro de "texto", el contenido de la variable "nombre"
buscar = InStr(texto, nombre)
Si lo encuentra (busca es distinto a cero), procede a otro busqueda, entre el resto del texto y el total de la longitud, buscando el contenido de la variable "nombre"
buscar2 = InStr(Mid$(texto, buscar + Len(nombre), Len(texto)), nombre)
Y si busca2 tambien es distinto a cero, entonces eso indica que has por lo menos 2 veces, y por lo tanto 2 ejecuciones.

Para usar este procedimiento:
.....

if comprobar.ejecucion("hola.gambas") then  Message.Info("Se esta ejecutando por lo menos 2 veces")

.....



Descarga del Codigo fuente


Saludos.

Fuente:
https://sites.google.com/site/fpoprogramadorsistemas/sistemas-de-procesos-en-gnu-linux

Enlaces de interes:
Instr
Shell
file.load
Foro: Gambas es org: Permitir Una Sola Ejecución.