El Resultado De Shell No Lo Muestra En Un Textarea


Ir a la página 1, 2  Siguiente

Objetivo: El Resultado De Shell No Lo Muestra En Un Textarea
Mostrar código:
Código: [Descargar] [Ocultar]
  1.  
  2. Public Sub TreeViewcomandos_Select()
  3. Dim res5 As String
  4. Dim res6 As String
  5. Dim sesto As String
  6.  
  7. sesto = TreeViewcomandos.Current.Key
  8.  
  9. Select Case sesto
  10. Case "ifconfig"
  11. TextAreacomandos.Clear
  12. Shell "ifconfig --help" To res5 'aquí si pongo shell "ifconfig eth0" o "ifconfig" los muestra, como que el problema se da cuando se pone modificadores
  13. TextAreacomandos.Text = res5
  14. Print "ifconfig"
  15. Case "ifup"
  16. TextAreacomandos.Clear
  17. Print "ifup"
  18. Shell "uname -h" To res6
  19. TextAreacomandos.Text = res6
  20. Case Else
  21. Return
  22. End Select
  23. End
  24.  
  25.  


alguien me puede decir en que me equivoco??

última edición por v3ctor el Jueves, 30 May 2013, 18:37; editado 1 vez
Objetivo: Re: El Resultado De Shell No Lo Muestra En Un Textarea
Hola v3ctor.

¿ Tu quieres mostrar la ayuda de uname ?.

En ese caso no es -h es --help. Como hiciste arriba

Tendrías que añadir ademas alguna variable de cadena para que puedas añadir opciones.

Por ejemplo:
Dim orden As String = "ls"
Dim modificador As String = " -l"

Shell orden & modificador To TextArea1.Text


En el caso de que quieras usar mas de un modificador podías usar un array dinámico de cadena que vas llenando de modificadores.
Luego solo tendrás que ir concatenandolos para crear la orden completa.

Incluso puedes añadir como primer elemento del array la orden y los siguientes elementos son los modificadores.Nunca olvides el espacio con Shell.
¿ Llegaste a ver la orden Exec ?.

Saludos

última edición por Shell el Jueves, 30 May 2013, 20:34; editado 1 vez
Objetivo: Re: El Resultado De Shell No Lo Muestra En Un Textarea
Confieso que no daba con el problema y he tenido que preguntarlo en la lista de correo de gambas.

El problema es que algunos comandos, como el caso de ifconfig resulta que la salida del modificador (o argumento) --help no sale por la salida estándar (stdout) sino por la salida de errores del shell (stderr).

De manera que escribiendo el comando así, funciona correctamente:

Shell "ifconfig --help 2>&1" To una_variable


Lo que se hace con " 2>&1" es redirigir la salida de errores hacia la salida estándar y listo.

Por cierto, no siempre es lo mejor copiar la salida de un proceso shell a una variable, hay métodos más efectivos para controlar procesos que se detallan en la página oficial. Todo depende de las necesidades, como es lógico.

Saludos

Perfil MP  
Objetivo: Re: El Resultado De Shell No Lo Muestra En Un Textarea
Shell escribió: [Ver mensaje]
Hola v3ctor.

¿ Tu quieres mostrar la ayuda de uname ?.

En ese caso no es -h es --help. Como hiciste arriba

Tendrías que añadir ademas alguna variable de cadena para que puedas añadir opciones.

Por ejemplo:
Dim orden As String = "ls"
Dim modificador As String = " -l"

Shell orden & modificador To TextArea1.Text



En el caso de que quieras usar mas de un modificador podías usar un array dinámico de cadena que vas llenando de modificadores.
Luego solo tendrás que ir concatenandolos para crear la orden completa.

Incluso puedes añadir como primer elemento del array la orden y los siguientes elementos son los modificadores.Nunca olvides el espacio con Shell.
¿ Llegaste a ver la orden Exec ?.

Saludos


shell si ya lo sabia pero puse mal en el post:
uname -h
uname: opción inválida -- 'h'
Pruebe `uname --help' para más información.
es buena idea lo del array dinánico creo que es lo que necesito y usarlo con exec, aunque no tengo ni idea como es una array dinámico.

gracias sigo aprendiendo(no olviden que yo estoy empezando de cero nunca programe nada)

jguardon:
probé tu código y no anduvo
gracias, sigo intentando y fracasando intentando y fracasando, jaja es dura la vida del programador

Objetivo: Re: El Resultado De Shell No Lo Muestra En Un Textarea
Hola v3ctor.

Tienes mucha información sobre los arrays en la comunidad,la pagina de la documentación de gambas y en los blogs dedicados.
A los dinámicos se les conoce como nativos. (Arrays,matrices,conjuntos):

http://gambasdoc.org/help/cat/array?es

El blog que tengo olvidado por falta de tiempo:

http://gambas-basico.blogspot.com.e...-conjuntos.html

El blog del curso sobre Gambas3 de Julio:

http://cursogambas.blogspot.com.es/...s-matrices.html

Ya veras que es sencillo. Pregunta si tienes alguna duda sobre ellos.

En cuanto a los comandos de Shell, cada uno tiene su manera de trabajar y hay que conocerlos.
Luego como es normal depende de como quieras que sea tu aplicación y lo mas adecuado para ella.

Supongo que ya tendrás el manual de Gambas.

Saludos

última edición por Shell el Domingo, 02 Junio 2013, 10:03; editado 1 vez
Objetivo: Re: El Resultado De Shell No Lo Muestra En Un Textarea
v3ctor escribió: [Ver mensaje]


jguardon:
probé tu código y no anduvo


Pues es posible que estés haciendo algo mal...

Copia y pega este códig y dinos si funciona, porque aquí funciona correctamente:

Public Sub Form_Open()

Dim var As String

Shell "ifconfig --help 2>&1" To var
TextArea1.Text = var

End


shell, no sé que tienen que ver los arrays con el comando Shell. El comando Exec es al que hay que pasarle arrays de string con el comando y los modificadores cada uno por separado, pero no a Shell, que lo único que admite es una cadena.

Saludos

Perfil MP  
Objetivo: Re: El Resultado De Shell No Lo Muestra En Un Textarea
jguardon escribió: [Ver mensaje]


shell, no sé que tienen que ver los arrays con el comando Shell. El comando Exec es al que hay que pasarle arrays de string con el comando y los modificadores cada uno por separado, pero no a Shell, que lo único que admite es una cadena.


No tiene nada que ver. Es una posibilidad para que pueda añadir opciones al comando,(mas modificadores), cada uno seria un elemento del array.
Si concatenas todos esos elementos del array en una variable de cadena y se lo pasas a Shell es lo mismo. Ya sea por partes con Exec o una cadena con Shell.
Hay muchas posibilidades. Es como quiera hacerlo cada uno.

Saludos

Objetivo: Re: El Resultado De Shell No Lo Muestra En Un Textarea
Mmm, ya veo lo que dices. Bueno, es una posibilidad en el caso de necesitar trabajar mucho con un comando y sus modificadores.

Pero no olvides que Shell y Exec no son lo mismo y no funcionan exactamente igual internamente...

Saludos

Perfil MP  
Objetivo: Re: El Resultado De Shell No Lo Muestra En Un Textarea
guardon, esta vez si funciono, tal vez en la primera que probé hice algo mal.
gracias.

Shell:
si conozco los dos blog, he agregado los enlaces en el mio.
con gente como ustedes se aprende rápido, saludos


Código: [Descargar] [Ocultar]
  1. Public comandmodifik As String[]
  2.  
  3.  
  4. Public Sub Form_Open()
  5.  
  6.  
  7.  
  8. End
  9.  
  10. Public Function comandoymodificadores(comandmodifik As String[])
  11. TextArea1.Text.clear
  12.  Exec [comandmodifik] To TextArea.Text
  13. End
  14.  
  15. Public Sub btnifconfig_Click()
  16. comandmodifik.Clear
  17. comandmodifik.Add("ifconfig") 'error objeto nulo <-- me tira este error
  18. comandmodifik.Add("--help")
  19. comandoymodificadores()
  20. End
  21.  
  22. Public Sub btnuname_Click()
  23. comandmodifik.Clear
  24. comandmodifik.Add("uname")
  25. comandmodifik.Add("--help")
  26. comandoymodificadores()
  27. End
  28.  
  29. sigo probando....
  30.  
  31.  

última edición por v3ctor el Domingo, 02 Junio 2013, 20:41; editado 2 veces
Objetivo: Re: El Resultado De Shell No Lo Muestra En Un Textarea
Public comandmodifik As New String[]


Fíjate que hay que instanciar los arrays como un nuevo objeto. Hay que emplear la palabra New delante del tipo.

Saludos

Perfil MP  
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.4801s (PHP: -76% SQL: 176%)
Consultas SQL: 49 - Debug off - GZIP Activado