Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Calculadora De Expresiones Sin Usar Gb.eval, Y Usando Script
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Calculadora De Expresiones Sin Usar Gb.eval, Y Usando Script 
 
Hola, amigos

Estoy haciendo un programa y necesitaba realizar un cálculo con expresiones. En vez de usar el componente gb.eval, he usado un script de gambas, que  lo modifico y ejecuto para que me devuelva el valor de la expresión.

calculadora-de-expresiones-en-gambas

Lo que hago es copiar el script "plantilla" desde el programa al disco duro, allí lo modifico según los valores de la variables y expresión introducida por el usuario, y lo ejecuto, capturando el valor de salida para mostrarlo.

El código del script es el siguiente:

#!/usr/bin/env gbs2
DIM a,b,c,x,y AS float
a=<a>
b=<b>
c=<c>
x=<x>
y=<y>
PRINT <formula>


Y el código de la función que lo usa es:

' gambas module file
PUBLIC FUNCTION ecuacion(expresion AS String, OPTIONAL a AS String, OPTIONAL b AS String, OPTIONAL c AS String, OPTIONAL x AS String, OPTIONAL y AS String) AS String
    DIM cadena AS String
    DIM comando AS String
    DIM valor AS String
    TRY KILL User.home & "/programa.gbs"
    COPY "programa.gbs" TO User.home & "/programa.gbs"
    cadena = File.Load(User.home & "/programa.gbs")
    IF a <> NULL THEN
          cadena = Replace(cadena, "<a>", var.ConvierteComaaPto(a))
      ELSE
          cadena = Replace(cadena, "<a>", "0")
    ENDIF

    IF b <> NULL THEN
      cadena = Replace(cadena, "<b>", var.ConvierteComaaPto(b))
    ELSE
      cadena = Replace(cadena, "<b>", "0")
    ENDIF
    IF c <> NULL THEN
      cadena = Replace(cadena, "<c>", var.ConvierteComaaPto(c))
    ELSE
      cadena = Replace(cadena, "<c>", "0")
    ENDIF
 
    IF x <> NULL THEN
      cadena = Replace(cadena, "<x>", var.ConvierteComaaPto(x))
    ELSE
      cadena = Replace(cadena, "<x>", "0")
    ENDIF
  
    IF y <> NULL THEN
      cadena = Replace(cadena, "<y>", var.ConvierteComaaPto(y))
    ELSE
      cadena = Replace(cadena, "<y>", "0")
    ENDIF

    cadena = Replace(cadena, "<formula>", expresion)

    File.Save(User.home & "/programa.gbs", cadena)
    WAIT 0.1
    EXEC ["chmod", "777", User.home & "/programa.gbs"] WAIT
    EXEC [User.home & "/./programa.gbs"] TO valor
    IF valor <> "" THEN
           RETURN Replace(valor, "\n", "")
    ENDIF
   Message.Info("Posible error en en la expresión, o al realizar la operación")
   RETURN 0
END


PUBLIC FUNCTION ConvierteComaaPto(cadena AS String) AS String
 
  RETURN Replace(cadena, ",", ".")
 
END


En el formulario principal:

    ' gambas class file

    PUBLIC SUB _new()

    END

    PUBLIC SUB Form_Open()
    ME.Center
    END

    PUBLIC SUB ToolButtonCalcular_Click()
    DIM lista AS String

     TextBoxResultado.text = var.ecuacion(TextBoxExpresion.text, ValueBoxA.value, ValueBoxB.Value, ValueBoxC.value, ValueBoxX.value, valueboxy.value)

    lista = Str$(ListViewExpresiones.Count + 1)

    ListViewExpresiones.Add(lista, TextBoxExpresion.text & " = " & TextBoxResultado.text)
    END


calculadora-0.0.1.tar.gz
Descripción:  
Descargar
Nombre del archivo: calculadora-0.0.1.tar.gz
Tamaño: 10.15 KB
Descargado: 23 veces
calculadora-0.0.1.tar.gz
Descripción:  
Descargar
Nombre del archivo: calculadora-0.0.1.tar.gz
Tamaño: 10.15 KB
Descargado: 23 veces
calculadora-0.0.1.tar.gz
Descripción:  
Descargar
Nombre del archivo: calculadora-0.0.1.tar.gz
Tamaño: 10.15 KB
Descargado: 23 veces

 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Calculadora De Expresiones Sin Usar Gb.eval, Y Usando Script 
 
muy bueno julio, esto solo lo puedes hacer tu, te felicito
 



 
david - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Calculadora De Expresiones Sin Usar Gb.eval, Y Usando Script 
 
No, te equivocas, leyendo los post del foro  me han dado la idea (mezclándolos unos con otros, usar plantillas para crear html,por ejemplo)

Es al foro y a los que comparten sus conocimientos, al que tienes que dar las gracias.  
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Tipica Aplicación De La Calculadora Shell General 4 Sabado, 08 May 2010, 00:21 Ver último mensaje
Shell
No hay nuevos mensajes Simple Calculadora kotonfree Aplicaciones/Fragmentos de Código 8 Martes, 14 Diciembre 2010, 17:45 Ver último mensaje
kotonfree
No hay nuevos mensajes Calculadora jcontasti General 6 Miercoles, 16 Marzo 2011, 05:50 Ver último mensaje
soplo
No hay nuevos mensajes Ayuda Con Una Pequeña Calculadora miguelibagar Controles/Librerías/Componentes 4 Lunes, 17 Febrero 2014, 22:54 Ver último mensaje
jsbsan
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
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