lunes, 27 de mayo de 2013

Estado de memoria



'declaramos variables
Public memlibre As String
Public memusada As String
Public memtotal As String
Public largo1 As Integer
Public largo2 As Integer
Public fecha1 As String

Public Sub Form_Open()
  Dim i, e As Integer 'contadores de los for
  Dim b, z, x, w, mbmemusada, mbmemlibre, mbmemtotal As String
 'exec ejecuta el comando como en consola y deja el resultado
 'en la variable fecha1. en consola seria: date +%A\ %d\ %B\ %Y  
 'devuelve este formato: lunes 27 mayo 2013
Exec ["date", "+%A %d %B %Y"] To fecha1
'agregamos un título personalizado a nuestro formulario
  Me.Title = "Estado de Memoria" & " - " & fecha1
'centramos el formulario
  Me.Center
'obtenemos las 2 primeras lineas de informacion de memoria de /proc/meminfo


  Exec ["grep", "MemTotal:", "/proc/meminfo"] To memtotal
  Exec ["grep", "MemFree:", "/proc/meminfo"] To memlibre
  largo1 = Len(memtotal) 'obtenemos el largo de la primera línea del archivo /proc/meminfo
  largo2 = Len(memlibre) 'obtenemos el largo de la segunda línea del archivo /proc/meminfo
'aquí empieza el proceso de extracción de los números que es el dato que nos interesa mostrar
'tomamos el primer caracter, si es un número lo agregamos a la variable x sino seguimos
'en el ciclo hasta recorrer todo el string sacando la cifra numérica.
'La variable x va concatenando los números que vamos encontrando
'asi se muestra el dato crudo:
' MemTotal:        1805400 kB
' MemFree: 184108 kB

For i = 1 To largo1 Step +1
  z = Mid$(memtotal, i, 1)
   Select Case Asc(z)
    Case 47 To 57
      x &= z
   End Select
Next
'El mismo proceso que el for anterior, pero con la sengunda línea obtenida de /proc/meminfo
For e = 1 To largo2 Step +1
  b = Mid$(memlibre, e, 1)
   Select Case Asc(b)
    Case 47 To 57
      w &= b
    End Select
Next
  'Convirtiendo de kb a mb
  mbmemtotal = Int(x / 1024)
  mbmemlibre = Int(w / 1024)
 'Ingreso de datos de memoria total en los textbox
  txtmemtotalmb.Text = mbmemtotal & " MB"
  txtmemtotalkb.Text = x & " KB"
  'Ingreso de datos de memoria libre en los textbox
  txtlibremb.Text = mbmemlibre & " MB"
  txtLibrekb.Text = w & " KB"
  'Calculo e ingreso de datos de memoria usada en los textbox
  mbmemusada = mbmemtotal - mbmemlibre
  memusada = mbmemusada * 1024
  txtusadamb.Text = mbmemusada & " MB"
  txtusadakb.Text = memusada & " KB"

End

Public Sub btnSalir_Click()
'cerramos el programa
  Me.close
End


No hay comentarios.:

Publicar un comentario