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


Ir a la página 1, 2  Siguiente

Objetivo: 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
Perfil MP  
Objetivo: 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
Perfil MP  
Objetivo: 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
Perfil MP  
Objetivo: 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[]

Perfil MP  
Objetivo: 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?

Objetivo: 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

Perfil MP  
Objetivo: 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

Objetivo: 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

Perfil MP  
Objetivo: Re: Ayuda. Como Mostrar Las Operaciones De Una Terminal?
Gracias master abarzuaf,

Ahora esta mucho más claro.

Perfil MP  
Objetivo: 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.

Ir a la página 1, 2  Siguiente

Página 1 de 2


  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.5449s (PHP: -83% SQL: 183%)
Consultas SQL: 48 - Debug off - GZIP Activado