\' Gambas class file
Public contenido As String
Public arrayContenido As String[]
Public lineasDatos As String[]
Public ArrayEspacioParticion As String[]
Public ArrayNombreParticion As String[]
Public Sub _new()
End
Public Sub Form_Open()
\'determinar particiones
DeterminaParticiones()
\'cargo visualmente los datos...
cargaDatos()
\'inicio timer para determinar cambios en el numero de las particiones
Timer1.Delay = 5000 \'cada 5 segundos
Timer1.Start
End
Public Sub DeterminaParticiones()
\'cargo listado de particiones enla variable "contenido"
Dim a As Integer
Dim b As Integer
Shell ("cat /proc/partitions") To contenido
\'extraigo lineas...
arrayContenido = Split(contenido, "\\n")
\'elimino espacios dobles...
For a = 2 To arrayContenido.max - 1
\'elimino espacios dobles...
For b = 0 To 5
arrayContenido[a] = Replace(arrayContenido[a], " ", " ")
Next
Next
\'borro lineas que no tienen datos...
arrayContenido.Delete(0)
arrayContenido.Delete(0) \'nota: el 1 paso a ser el 0, al borrarse la linea anterior
arrayContenido.Delete(arrayContenido.max)
\'instancio arrays de espacio y nombre
ArrayEspacioParticion = New String[]
ArrayNombreParticion = New String[]
\'particiono las lineas por el caracter " " (espacio)
For a = 0 To arrayContenido.Max
lineasDatos = Split(arrayContenido[a], " ")
ArrayEspacioParticion.Add(lineasDatos[3])
ArrayNombreParticion.Add(lineasDatos[4])
Next
\'escribo en conla los datos...
Print "Lista de particiones y su espacio:"
For a = 0 To ArrayEspacioParticion.Max
Print "Nombre: ", ArrayNombreParticion[a], " Espacio: ", ArrayEspacioParticion[a]
Next
End
Public Sub cargaDatos()
Dim a As Integer
\' ListBox1.Clear() \'limpiio lista
\'ComboBox1.Clear() \'limpiio lista
For a = 0 To ArrayEspacioParticion.Max
\'en el listbox
ListBox1.Add(ArrayNombreParticion[a])
\'en el combobox
ComboBox1.Add(ArrayNombreParticion[a])
Next
End
Public Sub ListBox1_Click()
LabelEspacioListbox.text = "Particion: " & ArrayNombreParticion[ListBox1.index] & " Espacio: " & ArrayEspacioParticion[ListBox1.Index]
End
Public Sub ComboBox1_click()
LabelEspacioCombobox.text = "Particion: " & ArrayNombreParticion[ComboBox1.Index] & " Espacio: " & ArrayEspacioParticion[ComboBox1.Index]
End
Public Sub Timer1_Timer()
Dim numeroParticiones As Integer
Dim numeroParticionesNuevo As Integer
numeroParticiones = ArrayNombreParticion.Max
ListBox1.Clear()
ComboBox1.Clear()
cargaDatos()
DeterminaParticiones()
numeroParticionesNuevo = ArrayNombreParticion.Max
If numeroParticionesNuevo <> numeroParticiones Then
Message.Info("Cambio en el numero de particiones")
Endif
End