El Resultado De Shell No Lo Muestra En Un Textarea


Goto page 1, 2  Next

Subject: 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??

Last edited by v3ctor on Thursday, 30 May 2013, 18:37; edited 1 time in total
Subject: 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

Last edited by Shell on Thursday, 30 May 2013, 20:34; edited 1 time in total
Subject: 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

Profile PM  
Subject: 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

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

Last edited by Shell on Sunday, 02 June 2013, 10:03; edited 1 time in total
Subject: 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

Profile PM  
Subject: 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

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

Profile PM  
Subject: 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.  

Last edited by v3ctor on Sunday, 02 June 2013, 20:41; edited 2 times in total
Subject: 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

Profile PM  
Goto page 1, 2  Next

Page 1 of 2


  
You cannot post new topics
You cannot reply to topics
You cannot edit your posts
You cannot delete your posts
You cannot vote in polls
You cannot attach files
You can download files
You cannot post calendar events

   

This is a "Lo-Fi" version of our main content. To view the full version with more information, formatting and images, please click here.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Generation Time: 0.0858s (PHP: -9% SQL: 109%)
SQL queries: 27 - Debug Off - GZIP Enabled