Examinando el código del propio Gambas (
ver) buscando aprender algo nuevo, me llamo la atención este código.
Rutina que obtiene la versión de Gambas, ubicada en la clase de inicio llamada "Project"
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
desglosemos un poco.....
Exec [System.Path &/ "bin/gbx" & System.Version, "-V"] To sVer
System.Path=/usr
System.Version=3
linea de exec= /usr/bin/gbx3 -V
sVer=3.9.0
FullVersionWithRevision = Trim(sVer) 'Elimina espacios en blanco del final de una cadena.
If FullVersionWithRevision Ends ".0" Then FullVersionWithRevision = Left$(FullVersionWithRevision, -2)
si la versión termina en ".0" entonces elimina esos dos caracteres el punto y el cero. Quedando en este caso en "3.9"
Aquí mi adaptación a el programa Taller2015
Public VersionGambas As String
Public Sub Form_Open()
ObtenerVersionGambas() 'ejecutamos la subrutina para que obtenga la version y la guarde en la variable VersionGambas
LabVersionGambas.Text = VersionGambas ' le asignamos a la propiedad text el string almacenado en VersionGambas
End
Public Sub ObtenerVersionGambas()
Dim sVer As String
Exec [System.Path &/ "bin/gbx" & System.Version, "-V"] To sVer
VersionGambas = Trim(sVer)
If VersionGambas Ends ".0" Then
VersionGambas = Left$(VersionGambas, -2)
Endif
Catch
VersionGambas = "?"
End
Resultado