jsbsan   26-06-2022, 13:39
#1
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
vuott   26-06-2022, 14:25
#2
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
Última modificación: 26-06-2022, 19:50 por vuott.

« Los horizontes perdidos nunca regresan. » (F. Battiato, 1983)

« Las ondas nunca regresan. » (Genesis: Ripples, 1976)

« Vita non suavis esse potest, nec Mors amara. »  (...vuott)
Shell   26-06-2022, 15:48
#3
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

"El conocimiento es la mejor inversión que se puede hacer" - Abraham Lincoln
vuott   26-06-2022, 19:47
#4
(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.

« Los horizontes perdidos nunca regresan. » (F. Battiato, 1983)

« Las ondas nunca regresan. » (Genesis: Ripples, 1976)

« Vita non suavis esse potest, nec Mors amara. »  (...vuott)
jsbsan   26-06-2022, 20:07
#5
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
Última modificación: 26-06-2022, 20:08 por jsbsan.
Shell   27-06-2022, 14:35
#6
(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
Última modificación: 27-06-2022, 14:39 por Shell.

"El conocimiento es la mejor inversión que se puede hacer" - Abraham Lincoln
jsbsan   27-06-2022, 19:09
#7
Shell:
Cita:Este proceso también atrajo mi curiosidad.

Felicidades, Buena investigación !!!  Cool

Saludos

Julio
  
Usuarios navegando en este tema: 5 invitado(s)
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.