Scripting Con Gambas


Ir a la página 1, 2  Siguiente

Objetivo: Scripting Con Gambas
Con gambas además de aplicaciones se pueden realizar scripts. Estos scripts se diferencian poco de las anteriores en cuanto a potencia y capacidades, pero hay una diferencia fundamental. Es código interpretado.

En la práctica viene a ser equivalente a realizar un script bash (por ejemplo) salvo que tenemos a nuestra disposición casi todas las opciones disponibles en gambas.

Para poder acceder a estas funciones es necesario instalar el paquete gambas2-script. A partir de este momento ya tendremos disponible en nuestro sistema gbs2 que es el intérprete.

Inicio
Como todos los scripts se debe iniciar con el entorno en que se mueve. En nuestro caso
#!/usr/bin/env gbs2


Y a partir de ahí realizar las tareas que queramos con nuestro script.
#!/usr/bin/env gbs2
'ejecutar un proceso y mostrar el resultado
print "Ejecución en progreso"
print "Mostrando las veinte últimas líneas de log"
shell "tail -20 /var/log/archivo.log"
print "proceso ejecutado correctamente


Podemos declarar variables de todo tipo. arrays, objects, etc. Lo que queramos.

Entrada de datos por teclado
Quizá querramos pedir al usuario algún dato por teclado. En un entorno gráfico usaríamos un textbox. Aquí lo que usamos es un input
#!/usr/bin/env gbs2
Dim Nombre AS String , Apellido as string
Print "Nombre:"
Input Nombre
Print "Apellido:"
Input Apellido
print "El nombre es: '" & Nombre & " " & Apellido & "'"


Y a veces como todo script que se precie querremos la posibilidad de enviarle parámetros. Para eso utilizaremos la clase Application que tiene una propiedad llamada args[] que almacena los parámetros de entrada.
La clase application

La propiedad Args es un array de parámetros. Args[0] es igual a Application.name y es siempre el nombre del programa.
Como todo array disponemos de Args.count para saber la cantidad de parámetros.

#!/usr/bin/env gbs2
Dim x as integer
Print "Aplicación: " & Application.Args[0]
for x=1 to Application.Args.count-1
Print x & "º parámetro: " & Application.Args[x]
next


Y también como todo script que se precie puede requerir consultar alguna variable de entorno. Para ello igualmente acudiremos a la clase Application pero esta vez con la propiedad Env
#!/usr/bin/env gbs2

if application.env["Variable"]="1" then
print "valor inadecuado"
endif


Funciones
Naturalmente funcionan con funciones y rutinas exactamente igual que el gambas de siempre
#!/usr/bin/env gbs2

public sub Main()
Dim Op1 as integer, Op2 as integer, Resultado as integer
...
MostrarAsteriscos()
print "Introduzca valor 1: "
Input Op1
print "Introduzca valor 2: "
Input Op2
Resultado=CalcularResultado(Op1,Op2)
print "El resultado es: " & Resultado
end

private sub MostrarAsteriscos
Dim A as string
A=string("*",40) 'crear un string de 40 asteriscos
print A
end

private Function CalcularResultado(A as integer, B as integer) as integer
return A+B
End


Y naturalmente están disponibles los componentes de gambas para obtener capacidades extra en un script. Para ello usamos "use componente"

#!/usr/bin/env gbs2
use "gb.net"

public sub Main()
Dim S as new socket
...
... 'aquí hacemos lo que nos de la santa gana con nuestro socket
...

end


Por último decir que yo tengo gambas 2.7 y no puedo hacer algo mas, pero para los que tengais versiones superiores a la 2.9 también se pueden crear con esta misma técnica páginas web sustituyendo gbs2 por gbw2. Os dejo el enlace de la documentación de gambas que habla de esto y que yo aún no puedo probar pero que viene a ser como el ASP en VB o el PHP.

http://gambasdoc.org/help/doc/serverpage?es


última edición por soplo el Miercoles, 27 Enero 2010, 04:36; editado 1 vez
Perfil MP  
Objetivo: Re: Scripting Con Gambas
Tutorialazo, si señor. Cada día nos sorprendes con algo nuevo. Tomo buena nota, puede ser una herramienta super interesante!

Salu2, crack.

Perfil MP  
Objetivo: Re: Scripting Con Gambas
No es que yo sorprenda Ender je je je. Es que gambas sorprende a cualquiera.

Es un lenguaje con esa capacidad en entornos de consola que puede hacer poderosos scripts y que permite hacer páginas web al estilo ASP o PHP.

Para flipar a colores

A ver cuando me subo de versión y pruebo a hacer páginas web con gambas ¡Estoy impaciente!

Tengo alguna aplicación de monitorizar aplicaciones que eso le viene que ni pintado y también la de ticketing.


última edición por soplo el Miercoles, 27 Enero 2010, 19:49; editado 1 vez
Perfil MP  
Objetivo: Re: Scripting Con Gambas
Gracias Soplos por tus enseñanzas.

Saludos

Objetivo: Re: Scripting Con Gambas
Genial Soplo.


Saludos.

Objetivo: Re: Scripting Con Gambas
buenísimo!!!!!
gracias por el gran aporte!!!

Objetivo: Re: Scripting Con Gambas
Hola. Antes de nada, gracias por este pequeño tutorial. Con gbs3 podemos escribir nuestros programas en gambas-basic como si fuese un lenguaje de scritp!
Hoy he intentado hacer un pequeño programa que calcule el factorial de un número. Para ello programo dos ficheros: uno es el programa principal y el otro es un archivo llamado "factorial"" que contiene la función para calcular el factorial. El programa principal sólamente lee el número, lo envía a la funcion escrita en el módulo para ejecutarla, luego vuelve al programa principal y muestra el resultado. El problema es que el programa principal no reconoce el módulo. El error que devuelve gbs3 es ""Unknown identifier: factorial"" ¿Sabes si esto que quiero hacer es posible?

El código del programa principal es:


public sub main()

dim numero as byte

print "Teclea un número entero"

input numero

print factorial.fact (numero)

end



donde factorial es el módulo que tengo en el mismo directorio que el programa principal y cuyo código es:



public function fact (num as byte) as integer

dim bucle as byte
dim factor as integer

factor = 1

for bucle = 1 to num
factor = factor * bucle
next

return factor

end

Perfil MP  
Objetivo: Re: Scripting Con Gambas
Esto que comentas no lo he probado, pero guarda los scripts en el mismo directorio y prueba a usar use para añadir el archivo secundario.

Ya te digo que no se sin funciona, pero puedes empezar probando por ahí

Objetivo: Re: Scripting Con Gambas
Gracias netking86 por responder. Ya están los dos ficheros en el mismo directorio, y ya he utilizado USE y no funciona.

última edición por eucaliptus el Domingo, 16 Septiembre 2012, 14:28; editado 1 vez
Perfil MP  
Objetivo: Re: Scripting Con Gambas
Al trabajar con scripts, todo debe estar en un mismo fichero. El codigo quedaria asi:

Código: [Descargar] [Ocultar]
  1. public sub main()  
  2.  
  3. dim numero as byte  
  4.  
  5. print "Teclea un número entero"  
  6.  
  7. input numero  
  8.  
  9. print factorial.fact (numero)  
  10.  
  11. end  
  12.  
  13.  
  14. class factorial  
  15.  
  16. public function fact (num as byte) as integer  
  17.  
  18. dim bucle as byte  
  19. dim factor as integer  
  20.  
  21. factor = 1  
  22.  
  23. for bucle = 1 to num  
  24. factor = factor * bucle  
  25. next  
  26.  
  27. return factor  
  28.  
  29. end  
  30.  
  31. end  
  32.  


Saludos!

Perfil MP  
Ir a la página 1, 2  Siguiente

Página 1 de 2


  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.1475s (PHP: 9% SQL: 91%)
Consultas SQL: 26 - Debug off - GZIP Activado