Advertisement
jsbsan

Particiones

Jul 16th, 2014
1,456
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ' Gambas class file
  2.  
  3. Public contenido As String
  4. Public arrayContenido As String[]
  5. Public lineasDatos As String[]
  6. Public ArrayEspacioParticion As String[]
  7. Public ArrayNombreParticion As String[]
  8.  
  9. Public Sub _new()
  10.  
  11. End
  12.  
  13. Public Sub Form_Open()
  14.   'determinar particiones
  15.  
  16.   DeterminaParticiones()
  17.   'cargo visualmente los datos...
  18.   cargaDatos()
  19.  
  20.   'inicio timer para determinar cambios en el numero de las particiones
  21.   Timer1.Delay = 5000 'cada 5 segundos
  22.   Timer1.Start
  23.  
  24. End
  25.  
  26. Public Sub DeterminaParticiones()
  27.  
  28.   'cargo listado de particiones enla variable "contenido"
  29.  
  30.   Dim a As Integer
  31.   Dim b As Integer
  32.  
  33.   Shell ("cat /proc/partitions") To contenido
  34.  
  35.   'extraigo lineas...
  36.   arrayContenido = Split(contenido, "\n")
  37.  
  38.   'elimino espacios dobles...
  39.   For a = 2 To arrayContenido.max - 1
  40.     'elimino espacios dobles...
  41.     For b = 0 To 5
  42.       arrayContenido[a] = Replace(arrayContenido[a], "  ", " ")
  43.     Next
  44.   Next
  45.  
  46.   'borro lineas que no tienen datos...
  47.   arrayContenido.Delete(0)
  48.   arrayContenido.Delete(0) 'nota: el 1 paso a ser el 0, al borrarse la linea anterior
  49.   arrayContenido.Delete(arrayContenido.max)
  50.  
  51.   'instancio arrays de espacio y nombre
  52.   ArrayEspacioParticion = New String[]
  53.   ArrayNombreParticion = New String[]
  54.  
  55.   'particiono las lineas por el caracter " " (espacio)
  56.   For a = 0 To arrayContenido.Max
  57.     lineasDatos = Split(arrayContenido[a], " ")
  58.     ArrayEspacioParticion.Add(lineasDatos[3])
  59.     ArrayNombreParticion.Add(lineasDatos[4])
  60.   Next
  61.  
  62.   'escribo en conla los datos...
  63.   Print "Lista de particiones y su espacio:"
  64.   For a = 0 To ArrayEspacioParticion.Max
  65.     Print "Nombre: ", ArrayNombreParticion[a], " Espacio: ", ArrayEspacioParticion[a]
  66.    
  67.   Next
  68.  
  69. End
  70.  
  71. Public Sub cargaDatos()
  72.  
  73.   Dim a As Integer
  74.  
  75.   ' ListBox1.Clear() 'limpiio lista
  76.   'ComboBox1.Clear() 'limpiio lista
  77.   For a = 0 To ArrayEspacioParticion.Max
  78.     'en el listbox
  79.     ListBox1.Add(ArrayNombreParticion[a])
  80.     'en el combobox
  81.     ComboBox1.Add(ArrayNombreParticion[a])
  82.   Next
  83.  
  84. End
  85.  
  86. Public Sub ListBox1_Click()
  87.  
  88.   LabelEspacioListbox.text = "Particion: " & ArrayNombreParticion[ListBox1.index] & " Espacio: " & ArrayEspacioParticion[ListBox1.Index]
  89.  
  90. End
  91.  
  92. Public Sub ComboBox1_click()
  93.  
  94.   LabelEspacioCombobox.text = "Particion: " & ArrayNombreParticion[ComboBox1.Index] & " Espacio: " & ArrayEspacioParticion[ComboBox1.Index]
  95.  
  96. End
  97.  
  98. Public Sub Timer1_Timer()
  99.  
  100.   Dim numeroParticiones As Integer
  101.   Dim numeroParticionesNuevo As Integer
  102.  
  103.   numeroParticiones = ArrayNombreParticion.Max
  104.   ListBox1.Clear()
  105.   ComboBox1.Clear()
  106.   cargaDatos()
  107.   DeterminaParticiones()
  108.   numeroParticionesNuevo = ArrayNombreParticion.Max
  109.  
  110.   If numeroParticionesNuevo <> numeroParticiones Then
  111.     Message.Info("Cambio en el numero de particiones")
  112.    
  113.   Endif
  114.  
  115. End
Advertisement
RAW Paste Data Copied
Advertisement