Front End para df:
Espacio: conocer datos de nuestras
particiones y unidades conectadas
En gnu/linux, existe un comando que nos informa del espacio disponible, del usado y del que nos queda libre, se llama "df" (enlace). Pues he creado una pequeña utilidad en gambas3, que nos permite mostrar en una ventana la información, incluyendo una barra de proceso para de un simple vistazo, ver como estamos de espacio en nuestro disco.
Este es el enlace de descarga del archivo fuente y del instalador .deb
Nota:
Se instala en el menú de Aplicaciones de Oficina
A nivel de programación es un ejemplo de:
- Uso de la función Scan para extraer cadena de texto usando patrones.
- Creación de controles durante la ejecución del programa.
Este es el código fuente del programa:
Public Sub analiza()
'carga y analiza los datos que suministra el comando: df -h
Dim datos As String
Dim lineas As String[]
Dim l As String
Dim informe As String[]
Dim contador As Integer
Shell "df -h" To datos
lineas = Split(datos, "\n", "", True, "")
contador = 0
For Each l In Lineas
Inc contador
If contador <> 1 Then
informe = Scan(l, "* * * * * *")
creaControles(informe)
Endif
Next
Me.h = lineas.max * 30
End
Public Sub Form_Open()
'para leer la configuración del formulario
settings.read(Me)
'vamos a analizar la salida del comando df -h
analiza()
End
Public Sub creaControles(i As String[])
'creación de controles en tiempo de ejecución
Dim h As Hbox
Dim t As Label
Dim b As ProgressBar
'crear un hbox
h = New Hbox(Me)
t = New Label(Me)
t.text = i[0]
t.h = 10
t.Tooltip = i[0] & " " & i[1] & " " & i[2] & " " & i[3] & " " & i[4] & " " & i[5]
b = New ProgressBar(Me)
b.value = Val(Replace$(i[4], "%", "")) / 100
b.h = 10
b.Tooltip = i[0] & " " & i[1] & " " & i[2] & " " & i[3] & " " & i[4] & " " & i[5]
End
Public Sub Form_DblClick()
analiza()
End
Public Sub Form_Close()
'antes de salir de la aplicación, guardamos el estado de la ventana (ancho, largo y posicion x, y)
settings.write(Me)
End
'carga y analiza los datos que suministra el comando: df -h
Dim datos As String
Dim lineas As String[]
Dim l As String
Dim informe As String[]
Dim contador As Integer
Shell "df -h" To datos
lineas = Split(datos, "\n", "", True, "")
contador = 0
For Each l In Lineas
Inc contador
If contador <> 1 Then
informe = Scan(l, "* * * * * *")
creaControles(informe)
Endif
Next
Me.h = lineas.max * 30
End
Public Sub Form_Open()
'para leer la configuración del formulario
settings.read(Me)
'vamos a analizar la salida del comando df -h
analiza()
End
Public Sub creaControles(i As String[])
'creación de controles en tiempo de ejecución
Dim h As Hbox
Dim t As Label
Dim b As ProgressBar
'crear un hbox
h = New Hbox(Me)
t = New Label(Me)
t.text = i[0]
t.h = 10
t.Tooltip = i[0] & " " & i[1] & " " & i[2] & " " & i[3] & " " & i[4] & " " & i[5]
b = New ProgressBar(Me)
b.value = Val(Replace$(i[4], "%", "")) / 100
b.h = 10
b.Tooltip = i[0] & " " & i[1] & " " & i[2] & " " & i[3] & " " & i[4] & " " & i[5]
End
Public Sub Form_DblClick()
analiza()
End
Public Sub Form_Close()
'antes de salir de la aplicación, guardamos el estado de la ventana (ancho, largo y posicion x, y)
settings.write(Me)
End