Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 2
Ir a la página 1, 2  Siguiente
 
El Resultado De Shell No Lo Muestra En Un Textarea
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje 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.                 
  16.     Case "ifup"
  17.         TextAreacomandos.Clear
  18.           Print "ifup"
  19.           Shell "uname -h" To res6
  20.           TextAreacomandos.Text = res6
  21.           Case Else
  22.               Return
  23. End Select
  24.     
  25. End
  26.  
  27.  


alguien me puede decir en que me equivoco??
 




===================
Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
 
última edición por v3ctor el Jueves, 30 May 2013, 18:37; editado 1 vez 
v3ctor - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
última edición por Shell el Jueves, 30 May 2013, 20:34; editado 1 vez 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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
 




===================
Jesús Guardón

Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".

"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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
 




===================
Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
 
v3ctor - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
última edición por Shell el Domingo, 02 Junio 2013, 10:03; editado 1 vez 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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
 




===================
Jesús Guardón

Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".

"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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
 




===================
Jesús Guardón

Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".

"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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.   
  12.   TextArea1.Text.clear
  13.  Exec [comandmodifik] To TextArea.Text
  14.   
  15. End
  16.  
  17. Public Sub btnifconfig_Click()
  18. comandmodifik.Clear
  19.   comandmodifik.Add("ifconfig") 'error objeto nulo <-- me tira este error
  20.   comandmodifik.Add("--help")
  21. comandoymodificadores()
  22. End
  23.  
  24. Public Sub btnuname_Click()
  25. comandmodifik.Clear
  26.   comandmodifik.Add("uname")
  27.   comandmodifik.Add("--help")
  28. comandoymodificadores()
  29. End
  30.  
  31. sigo probando....  
  32.  
  33.  

 




===================
Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
 
última edición por v3ctor el Domingo, 02 Junio 2013, 20:41; editado 2 veces 
v3ctor - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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
 




===================
Jesús Guardón

Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".

"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes No Veo El Resultado En La Clase Resultado.... portaro General 3 Miercoles, 07 May 2014, 10:42 Ver último mensaje
jsbsan
No hay nuevos mensajes Fraccionar Un Resultado SQL. tincho Bases de Datos 6 Martes, 01 Marzo 2016, 13:41 Ver último mensaje
tincho
No hay nuevos mensajes Exec O Shell Al Ejecutar Un Script SH Me M... CanihoJR Controles/Librerías/Componentes 3 Sabado, 29 Diciembre 2018, 19:16 Ver último mensaje
CanihoJR
No hay nuevos mensajes Guardar El Resultado De Un Proceso Shell calcena General 1 Martes, 23 Junio 2020, 15:01 Ver último mensaje
vuott
 

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


 
Lista de permisos
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



  

 

cron