https://foro.gambas-es.org/viewtopic.php?f=4&t=534&p=3018#p3018
-----------------------------------
abarzuaf
Martes, 30 Marzo 2010, 23:16

Re: Ayuda. Como Mostrar Las Operaciones De Una Terminal?
-----------------------------------
Hola.

[quote][code linenumbers=false syntax=gambas]EXEC ["ps", "aux"] WAIT TO buffer
[/code][/quote]

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:

[b]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)
[/b]

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.

[quote][code linenumbers=false syntax=gambas]cadena = Split(buffer, "\n")[/code][/quote]

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.

[quote][code linenumbers=false syntax=gambas]
FOR bucle = 0 TO cadena.Count - 1
  TextArea1.Insert(Str(cadena[bucle]) & "\n")
NEXT[/code][/quote]

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


