Comunidad Gambas-es
¿alguna forma de que el programa sepa que version de gambas tenemos instalada? - Versión para impresión

+- Comunidad Gambas-es (https://gambas-es.org)
+-- Foro: Gambas (https://gambas-es.org/forum-3.html)
+--- Foro: General (https://gambas-es.org/forum-4.html)
+--- Tema: ¿alguna forma de que el programa sepa que version de gambas tenemos instalada? (/thread-932.html)



¿alguna forma de que el programa sepa que version de gambas tenemos instalada? - jsbsan - 26-06-2022

Hola a todos:
¿hay alguna forma de un programa sepa que versión de gambas tenemos instalada?
Desde consola ,se puede ver usando el siguiente comando:
$gambas3 --version
(con lo cual lo podemos conocer indirectamente usando el comando Shell o Exec...

Pero no se si se puede hacer directamente con alguna variable que tenga el lenguaje (algo como gb.gambas3.version) ¿lo sabeis?

Saludos

Julio


RE: ¿alguna forma de que el programa sepa que version de gambas tenemos instalada? - vuott - 26-06-2022

El numero de versón de Gambas está contenido en el archivo (de las fuentes de Gambas):  User.Home /gambasdevel/VERSION

[code]
Y tambien en el archivo:
User.Home /gambasdevel/main/config.h


RE: ¿alguna forma de que el programa sepa que version de gambas tenemos instalada? - Shell - 26-06-2022

Hola Julio.
 
(26-06-2022, 13:39)jsbsan escribió: ¿hay alguna forma de un programa sepa que versión de gambas tenemos instalada?

¿ Con qué idea ?. Wink

¿ Qué te parece ?

Código:
print System.FullVersion

System.FullVersion

Saludos


RE: ¿alguna forma de que el programa sepa que version de gambas tenemos instalada? - vuott - 26-06-2022

(26-06-2022, 15:48)Shell escribió: System.FullVersion

Sì, la solución de nuestro Cónsul romano es más rápida y elegante.


RE: ¿alguna forma de que el programa sepa que version de gambas tenemos instalada? - jsbsan - 26-06-2022

Shell:
Código:
System.FullVersion


Gracias. Es lo que buscaba.
Cita:¿ Con qué idea ?.

La idea es que el programa ejecute parte de su código si es de una versión en concreta (o superior o inferior).  Por ejemplo, si uso algo (una variable o un función) que solo esta incluida  en la version 3.17 o superior, el programa compruebe que en que version se esta ejecutando de gambas3 y ejecute (o no ) la parte del codigo que si funciona en la versiones superiores a 3.17.

Para un caso real que me esta pasando, tengo hace varios años programado  un modulo llamado "update" que comprobaba si el programa tenia alguna nueva versión (descargaba una pagina web donde contenía el dato  la versión del programa más actual). Esto me esta fallando en las ultimas versiones de gambas3, y lo estoy "anulando" como solución... aunque a lo mejor otra solución era comprobar la version de gambas3, y ejecutar o no el módulo sabiendo la versión que corre de gambas3.

Saludos

Julio


RE: ¿alguna forma de que el programa sepa que version de gambas tenemos instalada? - Shell - 27-06-2022

(26-06-2022, 19:47)vuott escribió: Sì, la solución de nuestro Cónsul romano es más rápida y elegante.

Wink

Probablemente debajo de esta instrucción se oculte: "gambas3 -V", pero para eso hay que consultarlo al  oráculo.
Quizás la clase System se pueda ver en las fuentes de Gambas.

Puede que sea más habitual este:

System.Version

Puede que uno haya sustituido al otro.
Las referencias que encontré a los archivos del código de Gambas fueron estas con la palabra FullVersion.
Estando dentro del directorio de las fuentes de Gambas3.

Código:
grep -lir "System.FullVersion" ./
 
Cita: 
./app/src/gambas3/.src/Project.module
./app/src/gambas3/.src/Packager/FMakeInstall.class
./app/src/gambas3/.src/Packager/Package.module
./app/src/gambas3/.src/Project/Farm/FPublish.class
./app/src/gambas3/.src/Project/Farm/Publish/CTagCompletion.class
./app/src/gambas-wiki/.src/Main.module
./comp/src/gb.logging/.src/Formatter.module

Principalmente me llamó este más la atención: ./app/src/gambas3/.src/Project.module
Si, es una carpeta dentro del proyecto Gambas3 y si llama Project.
Este proceso también atrajo mi curiosidad.

Código:
Private Sub InitVersion()

  Dim sVer As String
  Dim aVer As String[]

  'Shell "gbx" & System.Version & " -V" To sVer
  'FullVersion = Trim(Mid$(sVer, InStr(sVer, "-") + 1))
  FullVersion = System.FullVersion
  aVer = Split(FullVersion, ".")
  aVer.Remove(aVer.Max)
  Version = aVer.Join(".")

  Exec [System.Path &/ "bin/gbx" & System.Version, "-V"] To sVer
  FullVersionWithRevision = Trim(sVer)
  If FullVersionWithRevision Ends ".0" Then FullVersionWithRevision = Left$(FullVersionWithRevision, -2)

Catch

  Version = "?"

End

Me gustaría investigarlo mejor, pero mis deberes de cónsul romano me reclaman. Angel
Que por cierto si os fijáis se lee "gbx" cuando realmente solemos encontrar "gbx3" en el directorio del sistema.
Es que System.Versión solo devuelve "3"...
 
Cita: 
gbx3 (1)             - GAMBAS Interpreter


Julio:

Supuse que era eso. Ya veo que es un problema y puede que bien grande o bastante pesado para resolverlo.
En mucho de tus programas tenías esa opción, aplicación como el de las damas y muchos más. Sobre todo
las que son de gran tamaño.

Saludos


RE: ¿alguna forma de que el programa sepa que version de gambas tenemos instalada? - jsbsan - 27-06-2022

Shell:
Cita:Este proceso también atrajo mi curiosidad.

Felicidades, Buena investigación !!!  Cool

Saludos

Julio