Comunidad Gambas-es
Reflejar salida de shell en textarea - Versión para impresión

+- Comunidad Gambas-es (https://gambas-es.org)
+-- Foro: Gambas (https://gambas-es.org/forum-3.html)
+--- Foro: Aplicaciones/Fragmentos de Código (https://gambas-es.org/forum-8.html)
+--- Tema: Reflejar salida de shell en textarea (/thread-270.html)



Reflejar salida de shell en textarea - alberto-moyano - 09-02-2021

Hola a todos,

estoy intentando implentar la salida a un textarea de una instrucción via Shell, tengo un boton que me trae la ruta a un textedit y con otro boton ejecuto la llamada que deberia mostrarse en un textarea, en consola la linea que armo se ejecuta sin problemas y en gambas no obtengo ningun error, simplemente no hace nada.

También dejo una captura parcial del formulario

Gracias de antemano!!!

Este es el código que utilizo
 
Código:
 
Public Sub btnSELECepub_Click()

  If Dialog.OpenFile() Then Return
    txtRUTAepub.Text = Dialog.Path

End

Public Sub btnCHECKEAR_Click()

  Dim hproceso As Process

  hproceso = Shell ("epubcheck" & "4" & "txtRUTAepub.text") For Read As "Proceso"
End

Public Sub Proceso_read()

  Dim salida As String

  txtRESULTADOS.ReadOnly = True

  salida = Read #Last, Lof(Last)
  txtRESULTADOS.text &= salida

End



RE: Reflejar salida de shell en textarea - tincho - 09-02-2021

(09-02-2021, 04:51)alberto-moyano escribió: hproceso = Shell ("epubcheck" & "4" & "txtRUTAepub.text") For Read As "Proceso"

txtRUTAepub.text se encuentre entrecomillado y no debería estarlo.
Luego, te propongo la siguiente manera de hacerlo:
Código:
Public Sub btnSELECepub_Click()

  If Dialog.OpenFile() Then Return
  txtRUTAepub.Text = Dialog.Path

End

Public Sub btnCHECKEAR_Click()

  'Dim hproceso As Process
  Dim s As String

  Shell "epubcheck 4 " & txtRUTAepub.text & " 2>&1" To s
 
  txtRESULTADOS.text = s
 
End

' Public Sub Proceso_read()
'
'   Dim salida As String
'
'   txtRESULTADOS.ReadOnly = True
'
'   salida = Read #Last, Lof(Last)
'   txtRESULTADOS.text &= salida
'
' End



RE: Reflejar salida de shell en textarea - alberto-moyano - 09-02-2021

Hola Tincho, gracias por tu ayuda pero tu propuesta me tira un error


RE: Reflejar salida de shell en textarea - tincho - 09-02-2021

(09-02-2021, 13:18)alberto-moyano escribió: Hola Tincho, gracias por tu ayuda pero tu propuesta me tira un error

Si, es verdad, el error es que olvide un AND, ponelo así:
  Shell "epubcheck 4 " & txtRUTAepub.text & "2>&1" To s
Debería funcionar
Corregí el código que puse antes también.
Saludos.


RE: Reflejar salida de shell en textarea - alberto-moyano - 09-02-2021

Hola tincho, no funciona, pero me ya me muestra en el textarea el error, que creo entender que significa.

el 4 después de epubcheck es un argumento del script (indica la versión de epubcheck), probe con un AND entre la llamada al script y el 4 pero tampoco funciona, no sé si para los argumentos la declaración debe cambiar

Bueno Tincho, ya lo encontré, pero no entiendo el porqué. El 4 que es un valor argumento necesita un espacio despues antes de cerrar las comillas, en otras pruebas que hice con programas no se necesita el espacio adicional antes del cierre de las comillas.

Gracias por tu ayuda

PD: como cierro el hilo para que figure como solucionado


RE: Reflejar salida de shell en textarea - tincho - 09-02-2021

(09-02-2021, 14:34)alberto-moyano escribió: El 4 que es un valor argumento necesita un espacio despues antes de cerrar las comillas

Si eso es, creo, siempre así, en unix los argumentos van separados por un espacio.
Saludos.