Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 2 de 2
Ir a la página Anterior  1, 2
 
Scripting Con Gambas
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Re: Scripting Con Gambas 
 
Gracias sebikul, Entonces no es posible ir guardando en un fichero independiente todas las funciones matemáticas, como por ejemplo la función factorial. Y luego usarlas desde otros ficheros cuando se necesiten. Digo trabajando con scripts, sin el entorno gambas.
Si pongo todo en el mismo fichero no es necesario poner "class factorial". Cambiando la línea "print factorial.fact(numero)" por "print fact(numero)" es suficiente.

Estoy pensando en escribirle a los desarrolladores para que las cosas puedan hacerse tal y como yo decía, pero no creo que lo acepten porque supongo que tendrán que atender otras cuestiones más importantes de gambas. Esto que yo propongo es muy minoritario, supongo que la mayoría de la gente usa gambas como entorno de desarrollo gráfico y pocos como scripting. Pero igual me animo y les escribo al foro.

Un saludo y gracias a todos por responder.
 



 
última edición por eucaliptus el Domingo, 16 Septiembre 2012, 21:31; editado 3 veces 
eucaliptus - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Scripting Con Gambas 
 
sebikul escribió: [Ver mensaje]
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!


Para usar un archivo externo debes usar INCLUDE, por ejemplo

INCLUDE "factorial.class"


Y bueno, a mi me funciona en la 3.3, no se si en versiones anteriores funciona, será cuestion de probar
 




===================
William Cabrera
Mi Blog
Mi Twitter
IRC de Gambas en Español
 
última edición por willicab el Domingo, 16 Septiembre 2012, 23:24; editado 1 vez 
willicab - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Scripting Con Gambas 
 
Gracias willicab. Ahora ya me pide que teclee un número entero, señal de que lee el programa principal y el secundario. Pero una vez que introduzco el número entero me dice:

MMain.main.12: #41: 'factorial.fact' is not static
1: MMain.main.12

12  es el número de línea del programa principal, pues en la linea 11 el código es 'print factorial.fact (numero)'
He buscado el error #41 y he encontrado esto:

Symbol is not static (#41)
You tried to use a dynamic symbol without an object reference, i.e. directly on a class name.

He cambiado el código del programa principal para incluir un objeto al que llamé 'tal':

INCLUDE "factorial.class"

public sub main()

    dim numero as byte
    dim tal as factorial

    print "Teclea un número entero"

    input numero

    print tal.fact (numero)

end

Y ahora me dice:

MMain.main.13: #13: Null object
1: MMain.main.13

Lo cual significa que estoy intentando usar el valor "NULL" de un objeto.
El primer 13 es la línea donde está el error, la misma que antes.

¡Ya lo he conseguido!
He añadido otra linea al fichero justo debajo de "dim tal as factorial":
tal = new factorial

Ahora sí que me funciona.
Y una pregunta más... ¿no sería mejor poner este subhilo en un hilo aparte por si a alguien le interesa trabajar con archivos externos llamados desde otro archivo? Es que con el título que tiene este hilo puede que no encuentre lo que busca. Además yo podría incluir "tema resuelto" en el título. Bueno, que decidan los administradores. Gracias a todos por vuestra ayuda y un saludo.
 



 
última edición por eucaliptus el Lunes, 17 Septiembre 2012, 21:16; editado 4 veces 
eucaliptus - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Scripting Con Gambas 
 
En realidad lo que te esta diciendo es que estas ejecutando una funcion como si fuera estatica. Para que funcione debes declarar la funcion asi en el archivo factorial.class:

Código: [Descargar] [Ocultar]
  1. static public function fact (num as byte) as integer  
  2.  

 



 
sebikul - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Scripting Con Gambas 
 
Gracias sebikul. He probado como tú dices y funciona perfectamente.

He descubiero que no hacen falta clases ni objetos para el ejemplo que he puesto, con lo cual tecleamos menos líneas. Al final el problema lo he dejado resuelto así:

He creado dos ficheros, el principal llamado "1.bas", y el secundario llamado "2.bas".

El código de 1.bas es:

public sub main ()

    INCLUDE "2.bas"

    dim numero as byte

    print "Teclea un número entero"

    input numero

    print factorial (numero)

end


Y el código de 2.bas es:

public function factorial (num as byte) as integer

    dim bucle as byte
    dim fact as integer

        fact = 1

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

        return fact

end


Para ejecutarlo se escribe gbs3 1.bas
 



 
última edición por eucaliptus el Lunes, 17 Septiembre 2012, 22:08; editado 2 veces 
eucaliptus - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Enlaces De Interes Sobre Bash Scripting Shell Shell Scripting 4 Domingo, 22 Julio 2012, 23:11 Ver último mensaje
codificador
No hay nuevos mensajes Scripting En Gambas. ¿ Limites ? Shell General 3 Jueves, 11 Junio 2015, 13:46 Ver último mensaje
Shell
No hay nuevos mensajes Gambas 3 Scripting ahtonio General 3 Viernes, 04 Diciembre 2015, 13:36 Ver último mensaje
Shell
No hay nuevos mensajes Gambas Scripting. Usar Clases Shell General 0 Jueves, 17 Enero 2019, 15:00 Ver último mensaje
Shell
 

Publicar nuevo tema  Responder al tema  Página 2 de 2
Ir a la página Anterior  1, 2

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 0 invitados
Usuarios registrados conectados: Ninguno


 
Lista de permisos
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



  

 

cron