Autore Topic: leggere e scrivere in una finestra terminale  (Letto 2004 volte)

Offline pedrak

  • Gamberetto
  • *
  • Post: 20
    • Mostra profilo
leggere e scrivere in una finestra terminale
« il: 14 Febbraio 2011, 01:09:13 »
Gent.mi tutti, amici ed esperti Gambas,

il quesito che vi sottopongo potrebbe forse rispondere indirettamente anche
ad un'altra discussione che ho aperto qualche giorno fa e cioè all'interfacciamento del pacchetto
statistico R in Gambas.
La domanda è :
è possibile aprire una finestra terminale
e inviare un input  a quella finestra tramite una applicazione Gambas e poi, sempre dalla
stessa applicazione Gambas catturare l'output della finestra terminale ?

saluti e grazie
Giuseppe

Offline Mefrio

  • Grande Gambero
  • ***
  • Post: 203
    • Mostra profilo
Re: leggere e scrivere in una finestra terminale
« Risposta #1 il: 14 Febbraio 2011, 12:16:08 »
per aprire il terminale tu basta digitare
Codice: gambas [Seleziona]
SHELL "NOME-DEL-TERMINALE"

questo però non ti consente di scriverci dentro...
per farlo ti basta fare così
Codice: gambas [Seleziona]
SHELL "gnome-terminal -e 'comandi'"

gnome-terminal è usato per l'esempio ma puoi usare anche konsole, xterm o qualsiasi altro emulatore di terminale
puoi anche assegnare l'output del terminale ad una variabile facendo
Codice: gambas [Seleziona]
DIM variabile AS String
SHELL "comandi" TO variabile

credo di essere stato chiaro ;)
per altro chiedi pure
per quanto io sia messo male, voglio aiutare chi sta peggio di me :D

Offline pedrak

  • Gamberetto
  • *
  • Post: 20
    • Mostra profilo
Re: leggere e scrivere in una finestra terminale
« Risposta #2 il: 14 Febbraio 2011, 18:26:32 »
grazie mille Mefrio,

porta pazienza, ti stresso ancora ... spero di poter ricambiare
prima o poi.

La prima parte mi funziona.
Ho creato una piccola finestra grafica con due bottoni
e ho inserito come comando al click del primo bottone

SHELL "gnome-terminal -e 'R' "

quando clicco vedo che viene aperto un
terminale e ' R ' va in esecuzione ... fin qui tutto bene.

Quello che vorrei ora è inviare comandi a quel terminale
che sta eseguendo R come se scrivessi da tastiera
e fargli eseguire delle operazioni ... tipo (sono comandi di R)

x = 1:100   (crea un vettore di 100 elementi)
y = x^2   
plot(x, y)

come potrei fare ?

l'altra parte della domanda è come fare per catturare l'output che
esce sul terminale quando eseguo una operazione, forse lo hai
scritto ... ma perdonami, non ho capito bene come fare.

grazie di nuovo ...

Saluti
Giuseppe










Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.484
    • Mostra profilo
Re: leggere e scrivere in una finestra terminale
« Risposta #3 il: 14 Febbraio 2011, 19:25:32 »
per fare quello che vuoi devi trattare il comando shell come processo , cerca esempi qui sul forum, + tardi se ho tempo ti faccio un esempio

Offline pedrak

  • Gamberetto
  • *
  • Post: 20
    • Mostra profilo
Re: leggere e scrivere in una finestra terminale
« Risposta #4 il: 14 Febbraio 2011, 19:28:39 »
grazie 10^3 , intanto comincio a cercare ...
devo dire che mi sto appassionando a Gambas  :D

ciao
Giuseppe

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.272
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: leggere e scrivere in una finestra terminale
« Risposta #5 il: 14 Febbraio 2011, 19:56:28 »
WOW  :o ho visto questo R e devo dire che inizia ad interessarmi....

Ho visto che l'output ottenuto e' in realtà una finestra con disegnato il grafico in questione...

Ho visto anche che con un comando del genere:

>svg("/home/tuahome/grafico.svg")
> x=1:100
> y=x^2
> plot(x,y)
> def.off()


il tutto riproduce un file svg al posto della finestra.

Quindi basta caricarsi l'immagine in una DrawingArea e il gioco e' fatto ;)


Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.484
    • Mostra profilo
Re: leggere e scrivere in una finestra terminale
« Risposta #6 il: 14 Febbraio 2011, 20:00:59 »
ottima idea , quella della drawing area !

@petrark
intanto se ti interessa scrivere in un processo guardati questo esempio che ti ho scritto or ora

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.484
    • Mostra profilo
Re: leggere e scrivere in una finestra terminale
« Risposta #7 il: 17 Febbraio 2011, 20:34:57 »
ho suddiviso la discussione , questa parte che spiega come interagire con un terminale rimane qui , mentre la discussione relativa al programma per r è unita  qui:
http://www.gambas-it.org/smf/index.php?topic=1700.0

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.316
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: leggere e scrivere in una finestra terminale
« Risposta #8 il: 27 Settembre 2012, 11:55:50 »
è possibile aprire una finestra terminale
e inviare un input  a quella finestra tramite una applicazione Gambas e poi, sempre dalla
stessa applicazione Gambas catturare l'output della finestra terminale ?
Segnalerei al riguardo quest'analoga discussione:
http://www.gambas-it.org/smf/index.php?topic=2286.0
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »