Portal    Foro    Buscar    FAQ    Registrarse    Conectarse

Como Mostrar Las Operaciones De Una Terminal En Gambas2 (solucionado)

Como Mostrar Las Operaciones De Una Terminal En Gambas2 (solucionado)
Artículo
Responder citando    Descargar mensaje  
Mensaje Como Mostrar Las Operaciones De Una Terminal En Gambas2 (solucionado) 
 
Hola a todos!

Soy bastante nuevo en gambas2 (en la programacion en general) y me gustaria saber como puedo hacer para que un textArea o un textbox o algo parecido me muestre lo que aparece en una terminal.

Por ejemplo:

Si tengo un textbox, un boton y un textArea entonces quiero que

PUBLIC SUB boton_click()
EXEC ["ps aux"]
END

ese seria el comando; pero como hago para que el resultado se muestre en algún control?


Gracias!



 
última edición por romeox el Miercoles, 31 Marzo 2010, 08:20; editado 1 vez 
romeox - Ver perfil del usuario Enviar mensaje privado  
romeox [ Martes, 30 Marzo 2010, 03:30 ]
 


Como Mostrar Las Operaciones De Una Terminal En Gambas2 (solucionado)
Comentarios
Responder citando    Descargar mensaje  
Mensaje Re: Ayuda. Como Mostrar Las Operaciones De Una Terminal? 
 
Hola

Coloca en un formulario un control Listbox y un control Button como el de la imagen.

screenshot_014

agrega el siguiente código en el evento click del boton.

PUBLIC SUB Button1_Click()
DIM buffer AS String
DIM cadena AS NEW String[]
DIM bucle AS Integer

EXEC ["ps", "aux"] WAIT TO buffer  
cadena = Split(buffer, "\n")

FOR bucle = 0 TO cadena.Count - 1
  ListBox1.Add(Str(cadena[bucle]))
  
NEXT

END


Saludos



 
última edición por abarzuaf el Martes, 30 Marzo 2010, 12:29; editado 1 vez 
abarzuaf - Ver perfil del usuario Enviar mensaje privado  
abarzuaf [ Martes, 30 Marzo 2010, 12:28 ]
Responder citando    Descargar mensaje  
Mensaje Re: Ayuda. Como Mostrar Las Operaciones De Una Terminal? 
 
Hola.

Aqui va otro mas parecido a lo que pides

txt

y aquí el código:

PUBLIC SUB Button1_Click()
DIM buffer AS String
DIM cadena AS NEW String[]
DIM bucle AS Integer

SHELL (TextBox1.text) WAIT TO buffer
cadena = Split(buffer, "\n")

FOR bucle = 0 TO cadena.Count - 1
  TextArea1.Insert(Str(cadena[bucle]) & "\n")
NEXT
END


Saludos



 
última edición por abarzuaf el Martes, 30 Marzo 2010, 12:44; editado 1 vez 
abarzuaf - Ver perfil del usuario Enviar mensaje privado  
abarzuaf [ Martes, 30 Marzo 2010, 12:44 ]
Responder citando    Descargar mensaje  
Mensaje Re: Ayuda. Como Mostrar Las Operaciones De Una Terminal? 
 
Hey, muchas gracias por los codigos.

Funcionaron a la perfección.

Cada vez me gusta mas el camaron! (sin albur)

Si no es mucha molestia, podrias explicarme un poco el codigo que escribiste, veo cosas nuevas como el insert, split y new string[]




 
romeox - Ver perfil del usuario Enviar mensaje privado  
romeox [ Martes, 30 Marzo 2010, 19:47 ]
Responder citando    Descargar mensaje  
Mensaje Re: Ayuda. Como Mostrar Las Operaciones De Una Terminal? 
 
Una cosa, yo quiero hacer un proceso de actualización, es decir que se descargue el nuevo .deb de una web y que puedas instalarlo... la cuestión es que de la forma que lo probé fue a base del terminal, pero si lo escribo yo, me muestra el porcentaje de descarga, pero si el comando se lo paso desde gambas para que lo haga al programa automáticamente, no me muestra nada, me lo descarga pero no me muestra nada.... Con este procedimiento podría también mostrar el porcentaje que no me muestra?

Otra cosa, en caso de que me muestre el porcentaje, yo podría hacer un progresBar (creo que se llama asi) con los porcentajes que me de la consola?



 
Cubel - Ver perfil del usuario Enviar mensaje privado  
Cubel [ Martes, 30 Marzo 2010, 20:39 ]
Responder citando    Descargar mensaje  
Mensaje Re: Ayuda. Como Mostrar Las Operaciones De Una Terminal? 
 
Cubel, te recomiendo que abras un nuevo hilo con tu pregunta, que es bastante interesante, pero no tiene mucho que ver con el hilo actual.

Recuerda exponer con todo detalle lo que quieres hacer y algún intento de código, para que veamos que te lo has "currado"... jeje (qué malo soy!).


Saludos



 
jguardon - Ver perfil del usuario Enviar mensaje privado  
jguardon [ Martes, 30 Marzo 2010, 21:22 ]
Responder citando    Descargar mensaje  
Mensaje Re: Ayuda. Como Mostrar Las Operaciones De Una Terminal? 
 
Jajaja ok pues a prepararlo y mañana por la mañana pasare el código también porque ahora estoy con el móvil pero tranquilo que mañana estará todo... Espero que de verdad sea interesante para los demás, ya que a veces me siento como el rarito del foro que siempre piensa en hacer las cosas imposibles!! jajajajja  



 
Cubel - Ver perfil del usuario Enviar mensaje privado  
Cubel [ Martes, 30 Marzo 2010, 21:25 ]
Responder citando    Descargar mensaje  
Mensaje Re: Ayuda. Como Mostrar Las Operaciones De Una Terminal? 
 
Hola.

Citar:
EXEC ["ps", "aux"] WAIT TO buffer
 


Con esta instrucción estas ejecutando el comando ps y todo lo que muestre se almacene en la variable matriz buffer de tipo cadena.
Las 2 primeras lineas que arroja mi equipo son estas, por dar un ejemplo:

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND(nueva linea)
root         1  0.0  0.1   2656  1352 ?        Ss   17:55   0:00 /sbin/init(nueva linea)


Si te fijas coloqué (nueva linea) que es donde se corta el texto y sigues escribiendo en la linea siguiente, cuando se muestra en la consola.

Citar:
cadena = Split(buffer, "\n")


A continuacion cortas las cadenas con la instruccion Split en donde terminan las cadenas, para esto se utiliza el caracter de escape "\n" y se van almacenando los "trozos" en la variable cadena.

Citar:
FOR bucle = 0 TO cadena.Count - 1
  TextArea1.Insert(Str(cadena[bucle]) & "\n")
NEXT


Con el bucle FOR vas leyendo una a una las cadenas almacenadas en tu matriz buffer, "bucle" es el contador que te permite ir leyendo.
Insert solamente va insertando "hacia abajo" una a una las cadenas para mostrarlas.

Puedes utilizar EXEC o SHELL si lo prefieres, EXEC te permite colocar caracteres que el comando SHELL los interpretaria como cadenas. Para este caso como no hay caracteres "extraños" en tu linea de comando, utiliza solo SHELL.

Espero te sirva.

Saludos



 
abarzuaf - Ver perfil del usuario Enviar mensaje privado  
abarzuaf [ Martes, 30 Marzo 2010, 23:16 ]
Responder citando    Descargar mensaje  
Mensaje Re: Ayuda. Como Mostrar Las Operaciones De Una Terminal? 
 
Gracias master abarzuaf,

Ahora esta mucho más claro.



 
romeox - Ver perfil del usuario Enviar mensaje privado  
romeox [ Martes, 30 Marzo 2010, 23:31 ]
Responder citando    Descargar mensaje  
Mensaje Re: Ayuda. Como Mostrar Las Operaciones De Una Terminal? 
 
romeox escribió: [Ver mensaje]
Gracias master abarzuaf,

Ahora esta mucho más claro.


Romeox, recuerda editar el título y añadir "(Solucionado)" si solucionaste el problema. Así las búsquedas de hilos serán más efectivas en un futuro.  

Gracias.



 
Capa - Ver perfil del usuario Enviar mensaje privado  
Capa [ Martes, 30 Marzo 2010, 23:58 ]
Mostrar mensajes anteriores:    
 
Publicar nuevo tema  Responder al tema  Página 1 de 2
Ir a la página 1, 2  Siguiente
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 



 

cron