Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Capturar Salida De Error (Stderr) De Un Comando
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Capturar Salida De Error (Stderr) De Un Comando 
 
Hola, estoy haciendo un front end para el programa de consola avrdude, he buscado y leido sobre el control de procesos, lo que hago es: desde gambas ejecuto el comando con EXEC, debo capturar la salida estandar, pero tambien debo capturar la salida estandar de error, justamente al tratar de capturar la salida de error, me salta el mensaje "Bad event handler FMain.lectura_Error() Not enough arguments"

el codigo que estoy usando es el siguiente:




PUBLIC proc AS Process

PUBLIC SUB btnCompConexion_Click()
  
proc = EXEC ["avrdude"] FOR READ AS "lectura"
  
END

PUBLIC SUB lectura_Read()
  DIM Salida AS String
  READ #LAST, Salida, -250
  PRINT Salida
END

PUBLIC SUB lectura_Error()
  
  DIM Salida AS String
  READ #LAST, Salida, -250
  PRINT Salida
END

 


Parece que el problema esta en

PUBLIC SUB lectura_Error()
  
  DIM Salida AS String
  READ #LAST, Salida, -250
  PRINT Salida
END



He probado con el comando "ls" y comentando la parte de captura de error, y si funciona bien, imprime la salida estandar.

Cual es la forma correcta de capturar la salida estandar de error ??

Saludos.
 



 
TuXFamily - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Capturar Salida De Error (Stderr) De Un Comando 
 
TuXFamily:

Tu forma (con procesos) deberia de funcionar...   ... mira en el buscador de foro porque recuerdo que jguardon comento esa forma de conseguir el error cuando se producia.

Se me ocurre otra forma de hacerlo, en vez de usar procesos,  es redireccionando a un archivo el error ("2>")
Shell("avrdude 2>error.txt")


Y luego el programa se tiene que encargar de leer el archivo "error.txt", para ver que es lo que ha pasado..

enlace: Enlace
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Capturar Salida De Error (Stderr) De Un Comando 
 
Parece un bug de gambas. Puede que estés usando una versión de Gambas2 antigua. ¿Has probado si ocurre lo mismo en las últimas versiones de Gambas3?

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: Capturar Salida De Error (Stderr) De Un Comando 
 
Tanto en Gambas2 como en Gambas3 el proceso es el mismo. El código esta bien, pero si te detienes a leer el error (Bad event handler FMain.lectura_Error() Not enough arguments) veras que al metodo lectura_Error() le falta un argumento en su declaracion.

La documentacion sobre como obtener el mensaje de error esta aqui: http://gambasdoc.org/help/comp/gb/process/.error?es&v3

Basicamente, lo unico que debes modificar es lo siguiente:

PUBLIC SUB lectura_Error(sError As String)
  
  PRINT "Error: " & sError

END
 

 



 
sebikul - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Capturar Salida De Error (Stderr) De Un Comando 
 
Cierto, eso pasa por no leer con cuidado... Good catch!

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: Capturar Salida De Error (Stderr) De Un Comando 
 
Muchas gracias a todos por comentar.

sebikul escribió:  
Tanto en Gambas2 como en Gambas3 el proceso es el mismo. El código esta bien, pero si te detienes a leer el error (Bad event handler FMain.lectura_Error() Not enough arguments) veras que al metodo lectura_Error() le falta un argumento en su declaracion.

La documentacion sobre como obtener el mensaje de error esta aqui: http://gambasdoc.org/help/comp/gb/process/.error?es&v3

Basicamente, lo unico que debes modificar es lo siguiente:

PUBLIC SUB lectura_Error(sError As String)
  
  PRINT "Error: " & sError

END
 


Efectivamente ese era el problema, el codigo quedo de esta manera y funciona muy bien:

PUBLIC proc AS Process

PUBLIC SUB btnCompConexion_Click()
 
proc = EXEC ["avrdude"] FOR READ AS "lectura"
 
END

PUBLIC SUB lectura_Read()
 DIM Salida AS String
 READ #LAST, Salida, -250
 PRINT Salida
END

PUBLIC SUB lectura_Error(sError AS String)

  PRINT "Error: " & sError

END
 


Ahora ya puedo continuar con lo que falta del front end, hasta el momento luce asi:

instant_nea27

Cuando lo termine lo posteare, tal vez a alguien le pueda servir o hacerle alguna mejora

Saludos.
 



 
TuXFamily - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Capturar Salida De Error (Stderr) De Un Comando 
 
Se ve chido el programita. He estado postergando mi aprendizaje con AVR, espero pronto usar tu app

Siguiendo tu espiritu de compartir, dejo aquí un pequeño front-end que hice para el pk2cmd (lo hice el año pasado y en gambas2), igual y le sirve a alguien:

Saludos!

pk2cmdgb
 



 
razaAztk - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuarioVer la galería personal del usuario 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
Ocultar¡Este tema fue útil?

 

Elegir valoración:                       

Media de valoración Valoración mínima Valoración máxima Número de valoraciones
0.00 0 0 0
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Salida De Un Comando netking86 Shell Scripting 4 Domingo, 07 Marzo 2010, 22:28 Ver último mensaje
netking86
No hay nuevos mensajes Capturar Salida Comando "udp-sender&q... gambas yacker General 4 Viernes, 19 Abril 2013, 10:39 Ver último mensaje
shordi
No hay nuevos mensajes Comando Para Capturar Las Areas De Trabajo jsbsan General 7 Jueves, 18 Diciembre 2014, 10:55 Ver último mensaje
jsbsan
No hay nuevos mensajes Asignar La Salida De Un Comando A Una Vari... Shell Shell Scripting 2 Jueves, 11 May 2017, 21:56 Ver último mensaje
Shell
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 0 invitados
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
No puede descargar archivos
No puede publicar eventos en el calendario