Gambas-it

Archivi (sola lettura) => Programmazione (Gambas 2) => Topic aperto da: Berserker79 - 10 Aprile 2010, 13:17:52

Titolo: Aiuto per comando EXEC [RISOLTO]
Inserito da: Berserker79 - 10 Aprile 2010, 13:17:52
Ciao, dovrei replicare il seguente comando:
Codice: [Seleziona]
SHELL "lp5250d outputcommand='scs2ps | lpr -o media=A4' env.DEVNAME='PROVA' MYHOST"

con il comando EXEC. Ho provato alcune varianti ma senza ottenere nulla.
Ciao e grazie anticipatamente.
Titolo: Re: Aiuto per comando EXEC
Inserito da: Will32 - 10 Aprile 2010, 14:56:06
Con EXEC viene creato un processo interno .

Per esempio :

Codice: [Seleziona]
EXEC ["comando", "comando"] .....  

Al posto dei puntini devi inserire la parte utile a te con i seguenti comandi  :

WAIT
FOR se è specificato, allora l'input-output del comando viene rediretto cosicché il tuo programma possa intercettare :
WRITE se è specificato, puoi mandare dati allo standard input del comando usando l'oggetto process con istruzioni d'output comuni:
print, write ...
READ devi usare l'oggetto process con funzioni di stream e input/output per leggere lo standard output del processo .
INPUT
OUTPUT

AS per ricadere sull'evento NOME usato dall'oggetto process .

Quindi il codice , dovrebbe venire così :

Codice: [Seleziona]
EXEC [ "comando", "comando" ] WAIT/FOR/TO   WRITE/READ/INPUT/OUTPUT AS "NOME"

Se devi usare WAIT non devi scrivere nient'altro !!

Spero di esser stato chiaro , Ciao  :D
Titolo: Re: Aiuto per comando EXEC
Inserito da: Berserker79 - 11 Aprile 2010, 07:54:34
Ok, ma non riesco a capire come và scomposto il comando ("lp5250d outputcommand='scs2ps | lpr -o media=A4' env.DEVNAME='PROVA' MYHOST") per essere eseguito correttamente.
Il comando SHELL, esegue la stringa che gli viene passata.
Il comando EXEC vuole la stringa del comando, passata come un array.
Ciao.
Titolo: Re: Aiuto per comando EXEC
Inserito da: Will32 - 11 Aprile 2010, 10:46:04
Ho provato con il tuo comando come EXEC ma non mi funzionava neanche !!  ;D
Che cosa dovrebbe fare ??
Titolo: Re: Aiuto per comando EXEC
Inserito da: leo72 - 11 Aprile 2010, 12:06:31
A occhio manda alla stampare l'output del comando centrale.
Ma dandolo da terminale ti funziona?
Titolo: Re: Aiuto per comando EXEC
Inserito da: fsurfing - 11 Aprile 2010, 12:16:37
se vuole una stringa composta come array dovresti separare i vari comandi con delle virgole
Titolo: Re: Aiuto per comando EXEC
Inserito da: Will32 - 11 Aprile 2010, 15:15:30
Citazione
Ma dandolo da terminale ti funziona

No !  :P
Titolo: Re: Aiuto per comando EXEC
Inserito da: fsurfing - 11 Aprile 2010, 15:20:30
Citazione
Citazione
Ma dandolo da terminale ti funziona

No !  Linguaccia
a te non funziona sicuramente visto che non avrai la sua stampante e il suo documento :)
Titolo: Re: Aiuto per comando EXEC
Inserito da: Will32 - 11 Aprile 2010, 15:34:04
Be... , hai ragione !!  ;)
Titolo: Re: Aiuto per comando EXEC
Inserito da: Will32 - 12 Aprile 2010, 14:16:04
A Berserker79 dovrebbe funzionare correttamente !!
Titolo: Re: Aiuto per comando EXEC
Inserito da: Berserker79 - 12 Aprile 2010, 19:37:14
Il comando, come l'ho scritto io, lanciato da gambas con il comando shell funziona.
Purtroppo il comando shell non va bene perchè dopo aver lanciato il programma, debbo anche gestire il processo che ne deriva.
Fra le cose che voglio fare con il processo, voglio poterlo chiudere a mio piacimento. Con il comando shell ho verificato che non si riesce a chiudere il processo avviato, mentre se lanciato da exec si.
Secondo me, la parte più rognosa è questa:
outputcommand='scs2ps | lpr -o media=A4'
Dato che è un parametro/opzione che ne contiene altre a sua volta.
Secondo me il comando andrebbe scritto così:
Codice: [Seleziona]
EXEC ["lp5250d", "outputcommand='scs2ps | lpr -o media=A4'", "env.DEVNAME='PROVA'", "MYHOST"]
Ma purtroppo non và.
Titolo: Re: Aiuto per comando EXEC
Inserito da: Berserker79 - 27 Aprile 2010, 19:14:43
Ho trovato l'inghippo. Per far funzionare il tutto, ho dovuto eliminare gli apici nella stringa del comando.
La sintassi corretta è quindi:
Codice: [Seleziona]
EXEC ["lp5250d", "outputcommand=scs2ps | lpr -o media=A4", "env.DEVNAME=PROVA", "MYHOST"]
Saluti a tutti.
Titolo: Re: Aiuto per comando EXEC
Inserito da: Ceskho - 27 Aprile 2010, 19:16:05
Se non hai più richieste a riguardo ricorda di inserire [RISOLTO] nel titolo del primo post....grazie.... ;)