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


Reverseme

Reverseme


Aquí les dejo el código de un simple programa que a los entusiastas que recién comienzan a programar en Gambas sabrán valorar, no así los programadores que sin dudas largaran una sonrisa jaja. Se trata simplemente de poner los caracteres de un texto cualquiera en forma inversa. Ejemplo: si ponemos la palabra HOLA y presionamos en el botón “Poner al revés ahora”, el resultado sera ALOH. La idea es ir compartiendo código, enlaces, manuales y lo que sea sobre la programación en gambas.

----------------------------------------- Comienzo de código -----------------------------------------
' Gambas class file

Public palabrax As String
Public revirtiendo As String
Public largoX As Integer


Public Sub Form_Open()
  Me.Center
  Me.Title = "Reverseme"
  TextBox1.Text = "odinevneiB"
  Button1.SetFocus
End

Public Sub Button1_Click()
  Dim palabrarevertida As String
  Dim contador As Integer

  If TextBox1.Text = Null Then
    Message.Info("No a ingresado texto")
    TextBox1.SetFocus
  Else

  palabrax = TextBox1.Text
  largoX = Len(palabrax)

  For contador = largoX To 1 Step -1
    revirtiendo = Mid$(palabrax, contador, 1)
    palabrarevertida &= revirtiendo
    TextBox2.Text = palabrarevertida
  Next
  Endif
End

Public Sub Button3_Click()
  Dim pregunta As String
    pregunta = Message.Question("Esta seguro que quiere salir del programa?", "Sí, estoy seguro", "No, quiero volver")
  Select Case pregunta
    Case 1
      Me.Close
    Case 2
      Return
  End Select
End

Public Sub Button2_Click()
  TextBox1.Text = ""
  TextBox2.Text = ""
  TextBox1.SetFocus
End

Public Sub Button4_Click()
  Message.Info("Programado por postapase \n http://postapase.blogspot.com/ \n Gambas 3.4 \n http://gambas.sourceforge.net/es/main.html")
End

----------------------------------------- Final del código -----------------------------------------


Descargar código fuente: reverseme-0.0.1.tar.gz