Hola a todos.
Estoy diseñando una aplicación en gambas 3 en el SO Ubuntu 12.04 que utiliza "Udpcast". Concretamente, ejecuto el siguiente comando utilizando Shell:
Shell ["udp-sender","-f","test.txt"]
Necesito mostrar lo que aparece en consola en un TextArea al hacer clic en un botón y que ejecute el comando, pero me está resultando imposible. He usado todo lo que he encontrado en internet
para intentar hacerlo pero no funciona de ninguna forma. Aquí os muestro lo que he intentado hasta ahora:
Forma 1:
Public Sub Button1_Click()
Dim salida As String
Shell ["udp-sender","-f","test.txt"] To salida
TextArea1.Text = salida
End
Con esta forma "salida" no muestra nada, queda vacía, mientras que si hago otro comando como "ls" si que funciona.
Forma 2:
Public Sub Button1_Click()
Dim Proceso as Process
Proceso = Shell ["udp-sender","-f","test.txt"] For Read Write
End
PUBLIC SUB Process_Read()
DIM sLine AS String
LINE INPUT #LAST, sLine
TextArea1.Text = sLine
END
Tampoco hace nada, nisiquiera entra en el método "Process_Read()", creo que esto solo sirve para versiones antiguas de Gambas.
También he probado poniendo sólo Read y sólo Write pero nada. También haciendo el comando directamente sin meterlo en un proceso.
Forma 3:
PRIVATE Proceso AS Process
PUBLIC SUB Button1_Click()
Proceso = Shell ["udp-sender","-f","test.txt"] For Read Write
END SUB
PUBLIC SUB Process_Error(sData AS String )
TextArea1.Text = sData
END SUB
Lo mismo, este método si que viene incluido en gambas 3 pero tampoco sirve, supongo que es porque no hay ningún error.
Forma 4:
Public Sub Button1_Click()
Dim Proceso as Process
Proceso = Shell ["udp-sender","-f","test.txt"] For Read Write As "Lectura"
End
PUBLIC SUB Lectura_Read()
DIM sLine AS String
LINE INPUT #LAST, sLine
TextArea1.Text = sLine
END
Y esto tampoco, no entra en el método "Lectura_Read()" y tampoco soy capaz de hacer nada con "Lectura".
Por último también he intentado guardar la salida en un archivo de texto con el comando:
udp-sender -f test.txt > prueba.txt
De esta forma el archivo queda vacío, busque sobre esto y usándolo de esta manera si que lo guarda:
udp-sender -f test.txt 2> prueba.txt
Al parecer la salida es diferente a la del resto de comandos y hay que usar el modificador "2>", pero a la hora de ponerlo en Gambas:
Shell ["udp-sender", "-f", "test.txt", "2>", "prueba.txt"]
la consola de gambas me dice que "se ha ignorado el argumento extra "2>"" y se salta el paso de guardarlo en el archivo.
Como información extra decir que en versiones anteriores de gambas el método "Process_Read()" si que funcionaba con la salida del comando "udp-sender".
Gracias de antemano por su tiempo. Saludos!