Portal    Foro    Buscar    FAQ    Registrarse    Conectarse

Estadistica Para Hacer Mas Completa Una Función.

Estadistica Para Hacer Mas Completa Una Función.
Artículo
Responder citando    Descargar mensaje  
Mensaje Estadistica Para Hacer Mas Completa Una Función. 
 
Hola a todos.
Hice una función, en base a una idea de Vuott, que dice que distribución de linux se esta usando. Luego en base a esta información se hacen otras cosas derivadas.
Pero ¿Funciona en todos los sistemas?
Esta es la función:
Public Function DistroNoshell() As String ''Devuelve la distribución instalada xmi
  Dim str As String
  str = File.Load("/etc/issue.net")
  str = Replace(str, "\n", "")
  Return str
End
 

Podrían decirme como se comporta esta función en  vuestros sistemas.
Por ejemplo yo tengo Xubuntu 18.04 pero la función devuelve
Ubuntu 18.04.4 LTS
Saludos.



 
tincho - Ver perfil del usuario Enviar mensaje privado  
tincho [ Martes, 21 Abril 2020, 13:21 ]
 


Estadistica Para Hacer Mas Completa Una Función.
Comentarios
Responder citando    Descargar mensaje  
Mensaje Re: Estadistica Para Hacer Mas Completa Una Función. 
 
Tu código funciona para la Linux Mint. Le eché un vistazo a cómo lo hace gambas. Aquí está el código IDE de gambas ligeramente modificado.

Public Sub Form_Open()

  Dim sAnswer As String = GetDistribution()
  Print sAnswer


End Sub

Public Sub GetDistribution() As String

  Dim cDist As Collection = ["lsb-release": "/etc/lsb-release", "vector": "/etc/vector-version", "slackware": "/etc/slackware-version", "debian": "/etc/debian_version",
    "redhat": "/etc/redhat-release", "arch": "/etc/arch-release", "SuSE": "/etc/os-release", "gentoo": "/etc/gentoo-release", "conectiva": "/etc/conectiva-release",
    "mandriva": "/etc/mandriva-release", "pardus": "/etc/pardus-release", "kanotix": "/etc/kanotix-release"]

  Dim sPath As String
  Dim sDistro As String
  Dim cData As Collection
  Dim iPos As Integer

  For Each sPath In cDist
    sDistro = cDist.Key

    If Not Exist(sPath) Then Continue

    If sDistro = "lsb-release" Then
      cData = ReadLsbRelease(sPath)
      sDistro = cData["DISTRIB_DESCRIPTION"]
      If sDistro Then Return sDistro
      Return cData["DISTRIB_ID"] & " " & cData["DISTRIB_RELEASE"]
    Else
      Return sDistro & " " & Trim(File.Load(sPath))
    Endif

  Next

  If Exist("/etc/issue") Then
    sDistro = File.Load("/etc/issue")
    If sDistro Then
      iPos = InStr(sDistro, "\\")
      If iPos Then sDistro = Left(sDistro, iPos - 1)
    Endif
  Else
    Exec ["uname", "-s"] To sDistro
  Endif
  Return Trim(sDistro)

End

Public Sub ReadLsbRelease(sPath As String) As Collection

  Dim cCol As New Collection
  Dim sLine As String
  Dim aLine As String[]

  For Each sLine In Split(File.Load(sPath), "\n", "", True)

    aLine = Scan(sLine, "*=*")
    Try cCol[aLine[0]] = UnQuote(aLine[1])

  Next

  Return cCol

End
 




 
cogier - Ver perfil del usuario Enviar mensaje privado  
cogier [ Martes, 21 Abril 2020, 17:50 ]
Responder citando    Descargar mensaje  
Mensaje Re: Estadistica Para Hacer Mas Completa Una Función. 
 
cogier escribió:  
Tu código funciona para la Linux Mint. Le eché un vistazo a cómo lo hace gambas. Aquí está el código IDE de gambas ligeramente modificado...

Gracias Cogier, muy instructivo.
Saludos.



 
tincho - Ver perfil del usuario Enviar mensaje privado  
tincho [ Martes, 21 Abril 2020, 19:18 ]
Responder citando    Descargar mensaje  
Mensaje Re: Estadistica Para Hacer Mas Completa Una Función. 
 
En WLS2+Ubuntu me da esto...

' gambas module file

Public Sub Main()

  Print "Hello world"

  Print DistroNoshell
  
  Print "Bye cruel world"
End


Public Function DistroNoshell() As String ''Devuelve la distribución instalada xmi
  Dim str As String
  str = File.Load("/etc/issue.net")
  str = Replace(str, "\n", "")
  Return str
End
 


Hello world
(Function Main:3)
Bye cruel world



 
tercoIDE - Ver perfil del usuario Enviar mensaje privado  
tercoIDE [ Miercoles, 22 Abril 2020, 15:02 ]
Responder citando    Descargar mensaje  
Mensaje Re: Estadistica Para Hacer Mas Completa Una Función. 
 
tercoIDE escribió:  
En WLS2+Ubuntu me da esto... :roll:...

Te falto el () quedaria así
Public Sub Main()
  Print "Hello world"
  Print DistroNoshell() ' <--------- Aca va () al final
  Print "Bye cruel world"
End

Public Function DistroNoshell() As String ''Devuelve la distribución instalada xmi

  Dim str As String
  str = File.Load("/etc/issue.net")
  str = Replace(str, "\n", "")
  Return str
End
 




 
tincho - Ver perfil del usuario Enviar mensaje privado  
tincho [ Miercoles, 22 Abril 2020, 15:13 ]
Responder citando    Descargar mensaje  
Mensaje Re: Estadistica Para Hacer Mas Completa Una Función. 
 
Hello world
Ubuntu 18.04.4 LTS
Bye cruel world


 



 
tercoIDE - Ver perfil del usuario Enviar mensaje privado  
tercoIDE [ Miercoles, 22 Abril 2020, 15:17 ]
Responder citando    Descargar mensaje  
Mensaje Re: Estadistica Para Hacer Mas Completa Una Función. 
 
Cuidado con los nombres de variables. 'str' es el nombre reservado de un método conversor de cadenas.

Saludos



 
jguardon - Ver perfil del usuario Enviar mensaje privado  
jguardon [ Miercoles, 22 Abril 2020, 21:21 ]
Mostrar mensajes anteriores:    
 
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


 



 

cron