Estadistica Para Hacer Mas Completa Una Función.


Objetivo: 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.

Perfil MP  
Objetivo: 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

Perfil MP  
Objetivo: 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.

Perfil MP  
Objetivo: 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

Perfil MP  
Objetivo: 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

Perfil MP  
Objetivo: Re: Estadistica Para Hacer Mas Completa Una Función.
Hello world
Ubuntu 18.04.4 LTS
Bye cruel world



Perfil MP  
Objetivo: 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

Perfil MP  

Página 1 de 1


  
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

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.5681s (PHP: -75% SQL: 175%)
Consultas SQL: 45 - Debug off - GZIP Activado