Autor |
Mensaje |
datobinario
Jose Montilla
Aprendiz
Registrado: Marzo 2013
Mensajes: 79
Edad: 45 Ubicación: Venezuela
|
[SOLUCIONADO] Consola De Gambas
Buenos días (por aquí en Venezuela).
Quisiera saber si es posible mostrar la consola de gambas en el formulario, en tiempo de ejecución, para monitorear los procesos, por ejemplo, de descargas de archivos.
Mi problema es que cuando creo el ejecutable del programa, todo lo que le ordeno hacer a la consola de gambas queda en una caja negra, y me gustaría saber si puedo monitorear esos procesos.
Gracias caballeros.
=================== gambeando ando -o- Yaracuy-Venezuela
[img]http://www.gambas-es.org/files/images/2194/mi_tarj_present_qr_droid.png[/img]
última edición por datobinario el Jueves, 12 Abril 2018, 19:01; editado 2 veces
|
#1 Miercoles, 11 Abril 2018, 14:29 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
Re: Consola De Gambas
|
#2 Miercoles, 11 Abril 2018, 19:00 |
|
|
datobinario
Jose Montilla
Aprendiz
Registrado: Marzo 2013
Mensajes: 79
Edad: 45 Ubicación: Venezuela
|
Re: Consola De Gambas
Muchas gracias jsbsan por tu pronta respuesta, el ejemplo que me diste me sirvió, para un casi si y para otro no.
Me explico, me sirve para el caso donde debo ejecutar un script.sh que no descarga nada de internet, pero para otro script.sh que si hace una descarga (con wget) no funciona. Se salta la descarga y se va inmediatamente a la respuesta final.
Para el script que funciona bien, es uno donde sólo utilizo imagemagick, y creo un colage con distintas imágenes.
Lo otro es que sólo veo las salidas que ordena el script, por ejemplo, si si yo coloco en mi .sh
variable="hola mundo"
echo $variable
esa es la salida que se logra leer del proceso, pero si yo coloco en mi script
wget www.google.com -O google.txt
no me muestra la salida de la consola:
--2018-04-11 14:54:24-- http://www.google.com/
Resolviendo www.google.com (www.google.com)... 172.217.0.164, 2607:f8b0:4008:80a::2004
Conectando con www.google.com (www.google.com)[172.217.0.164]:80... conectado.
Petición HTTP enviada, esperando respuesta... 200 OK
Longitud: no especificado [text/html]
Grabando a: “google.txt”
google.txt [ <=> ] 10,38K --.-KB/s in 0,05s
2018-04-11 14:54:25 (193 KB/s) - “google.txt” guardado [10634]
este proceso me gustaría mostrarlo en tiempo de ejecución ¿es posible?
=================== gambeando ando -o- Yaracuy-Venezuela
[img]http://www.gambas-es.org/files/images/2194/mi_tarj_present_qr_droid.png[/img]
|
#3 Miercoles, 11 Abril 2018, 19:56 |
|
|
datobinario
Jose Montilla
Aprendiz
Registrado: Marzo 2013
Mensajes: 79
Edad: 45 Ubicación: Venezuela
|
Re: Consola De Gambas
Citar: Se salta la descarga y se va inmediatamente a la respuesta final.
Explico esto mejor, para que funcione wget debo usar
si uso
el wget del script no me funciona y se salta el proceso, sin mensaje de error ni nada que me pueda orientar.
=================== gambeando ando -o- Yaracuy-Venezuela
[img]http://www.gambas-es.org/files/images/2194/mi_tarj_present_qr_droid.png[/img]
|
#4 Miercoles, 11 Abril 2018, 20:00 |
|
|
CanihoJR
Ingeniero Programador
Registrado: Septiembre 2009
Mensajes: 269
Edad: 38 Ubicación: San Pedro Alcantara
|
Re: Consola De Gambas
Buenas compañero!
Si el script sh solo descarga un archivo de internet y tienes que esperar a que termine, puedes usar muchas otras funciones (Nativas) de gambas... depende siempre de que se ajuste más a tu proyecto, incluso puedes ir controlando el porcentaje de descarga y mostrarlo en un ProgressBar...
Igualmente si aun así quieres seguir ejecutando el SH, podrías ponerle alfinal "wait" de esta manera el programa esperará a que el .sh termine antes de seguir su ejecución.
|
#5 Miercoles, 11 Abril 2018, 21:14 |
|
|
datobinario
Jose Montilla
Aprendiz
Registrado: Marzo 2013
Mensajes: 79
Edad: 45 Ubicación: Venezuela
|
Re: Consola De Gambas
Buenas, gracias por responder.
incluso puedes ir controlando el porcentaje de descarga y mostrarlo en un ProgressBar...
¿eso se puede hacer? sería genial y básicamente lo que busco.
porque a mi lo se me ocurre es un progressbar que vaya de principio a fin a cada rato (lo he hecho), ya que no conozco la longitud del archivo ni el proceso de la descarga.
=================== gambeando ando -o- Yaracuy-Venezuela
[img]http://www.gambas-es.org/files/images/2194/mi_tarj_present_qr_droid.png[/img]
|
#6 Miercoles, 11 Abril 2018, 21:30 |
|
|
vuott
Analista Programador
Registrado: Agosto 2013
Mensajes: 2086
Edad: 60 Ubicación:
|
Re: Consola De Gambas
si uso
el wget del script no me funciona y se salta el proceso, sin mensaje de error ni nada que me pueda orientar.
Más exactamente, como tú gestionas esta linea ?
Es decir, como lees los datos del comando ?
|
#7 Miercoles, 11 Abril 2018, 23:46 |
|
|
datobinario
Jose Montilla
Aprendiz
Registrado: Marzo 2013
Mensajes: 79
Edad: 45 Ubicación: Venezuela
|
Re: Consola De Gambas
Citar: Más exactamente, como tú gestionas esta linea ?
Es decir, como lees los datos del comando ?
No entiendo bien la pregunta, pero esto es lo que hago:
Public Sub Button6_Click()
Dim Comando, csLocal As String
Dim rsLocal As Result
csLocal = "SELECT bbrefID,mlbID FROM appearances LEFT JOIN mlbid USING(bbrefID) WHERE mlbID IS NULL AND yearID=2018 GROUP BY bbrefID"
Try rsLocal = cSql.Exec(csLocal)
If Error Then
Message(Error.Text)
Else
If rsLocal.Count > 0 Then
Comando = "/home/datobinario/mlb-controles/bb-ref/mlbid/01-mlbid.sh " & varUltimoAnio & " Y"
'Comando = "/home/datobinario/mlb-controles/bb-ref/mlbid/01-mlbid.sh " & varUltimoAnio
LineDeComando(Comando)
Endif
Endif
End
Y este es el script:
#!/bin/bash
inicio2=`date +%s`
yearID=$1
seccion="mlbid"
if [ -z $2 ]; then
archivo=('war_daily_bat.txt' 'war_daily_pitch.txt')
fi
if [ $2 = "Y" ]; then
archivo=('war_daily_bat_year.txt' 'war_daily_pitch_year.txt')
fi
destino="/home/datobinario/mlb-controles/bb-ref/$seccion/todo.txt"
TABLA_BD=$seccion
> $destino
for FILE in ${archivo[*]}; do
inicio=`date +%s`
origen="/home/datobinario/mlb-controles/bb-ref/$seccion/$FILE"
wget "https://www.baseball-reference.com/data/$FILE" -O $origen
bc=" "
rp="+"
sed -i "s#$bc#$rp#g" $origen
if [ -f $origen ]; then
for LIN in $(cat "$origen"); do
arr=(${LIN//','/ })
if [ ${arr[4]} = "$yearID" ]; then
valor=${arr[3]},${arr[2]}
echo $valor >> $destino
fi
done
fi
final=`date +%s`
let seg=$final-$inicio
echo "**********$FILE ** ("$seg"seg.)"
done
destinoFinal=${destino//.txt/-2.txt}
cat $destino | sort | uniq > $destinoFinal
final2=`date +%s`
let seg=$final2-$inicio2
echo "**LISTO** ("$seg"seg.)"
este script hace dos descargas.
=================== gambeando ando -o- Yaracuy-Venezuela
[img]http://www.gambas-es.org/files/images/2194/mi_tarj_present_qr_droid.png[/img]
|
#8 Jueves, 12 Abril 2018, 15:59 |
|
|
CanihoJR
Ingeniero Programador
Registrado: Septiembre 2009
Mensajes: 269
Edad: 38 Ubicación: San Pedro Alcantara
|
Re: Consola De Gambas
Buenas, gracias por responder.
¿eso se puede hacer? sería genial y básicamente lo que busco.
Si, que se puede, solo quieres descargar un archivo??
|
#9 Jueves, 12 Abril 2018, 16:00 |
|
|
datobinario
Jose Montilla
Aprendiz
Registrado: Marzo 2013
Mensajes: 79
Edad: 45 Ubicación: Venezuela
|
Re: Consola De Gambas
Si, que se puede, solo quieres descargar un archivo??
este es el script #!/bin/bash
inicio2=`date +%s`
yearID=$1
seccion="mlbid"
if [ -z $2 ]; then
archivo=('war_daily_bat.txt' 'war_daily_pitch.txt')
fi
if [ $2 = "Y" ]; then
archivo=('war_daily_bat_year.txt' 'war_daily_pitch_year.txt')
fi
destino="/home/datobinario/mlb-controles/bb-ref/$seccion/todo.txt"
TABLA_BD=$seccion
> $destino
for FILE in ${archivo[*]}; do
inicio=`date +%s`
origen="/home/datobinario/mlb-controles/bb-ref/$seccion/$FILE"
wget "https://www.baseball-reference.com/data/$FILE" -O $origen
bc=" "
rp="+"
sed -i "s#$bc#$rp#g" $origen
if [ -f $origen ]; then
for LIN in $(cat "$origen"); do
arr=(${LIN//','/ })
if [ ${arr[4]} = "$yearID" ]; then
valor=${arr[3]},${arr[2]}
echo $valor >> $destino
fi
done
fi
final=`date +%s`
let seg=$final-$inicio
echo "**********$FILE ** ("$seg"seg.)"
done
destinoFinal=${destino//.txt/-2.txt}
cat $destino | sort | uniq > $destinoFinal
final2=`date +%s`
let seg=$final2-$inicio2
echo "**LISTO** ("$seg"seg.)"
este en particular descarga dos archivos, hay otros que descargan mas de uno, y algunos sólo uno.
=================== gambeando ando -o- Yaracuy-Venezuela
[img]http://www.gambas-es.org/files/images/2194/mi_tarj_present_qr_droid.png[/img]
última edición por datobinario el Jueves, 12 Abril 2018, 16:08; editado 1 vez
|
#10 Jueves, 12 Abril 2018, 16:07 |
|
|
|