Differenze tra le versioni di "Raccogliere quanto mostrato nella finestra di un Terminale"

Da Gambas-it.org - Wikipedia.
(Nuova pagina: La questione è abbastanza complessa. Si tratta di capire come poter raccogliere (leggere) quanto viene mostrato all'interno di una finestra di un Terminale. E' il caso di precisare c...)
 
Riga 17: Riga 17:
 
   
 
   
 
  '''End'''
 
  '''End'''
Nella medesima cartella ove è posizionato l'eseguibile Gambas, sarà creato un file, chiamato: "[i]typescript[/i]". Si comincerà a scrivere e ad usare normalmente il termminale. Conclusa la scrittura, si dovrà lanciare in Terminale il comando ''Exit''. Questa fase finale procederà a copiare all'interno del file "[i]typescript[/i]" quanto scritto e ritornato nel Terminale, aggiungendovi dei codici speciali, leggibili ed interpretabili da un Terminale.
+
Nella medesima cartella ove è posizionato l'eseguibile Gambas, sarà creato un file, chiamato: "[i]typescript[/i]". Si comincerà a scrivere e ad usare normalmente il termminale. Conclusa la scrittura, si dovrà lanciare in Terminale il comando ''Exit''. Questa fase finale chiuderà il Terminale, e procederà a copiare all'interno del file "[i]typescript[/i]" quanto scritto e ritornato nel predetto Terminale, aggiungendovi dei codici speciali, leggibili ed interpretabili solo da un Terminale.
Quindi, tornando in Gambas, si potrà leggere agevolmente in un altro Terminale, quanto presente nel file "[i]typescript[/i]":
+
Quindi, tornando in Gambas, si potrà leggere agevolmente in un nuovo Terminale, quanto presente nel file "[i]typescript[/i]":
 
  '''Public''' Sub Button1_Click()
 
  '''Public''' Sub Button1_Click()
 
+
 
   Desktop.OpenTerminal
 
   Desktop.OpenTerminal
 
   
 
   
Riga 29: Riga 29:
 
    
 
    
 
   <FONT color=#006400>' ''Leggiamo dal file "[i]typescript[/i]", ed indirizziamo il contenuto al nuovo Terminale appena aperto:''</font>
 
   <FONT color=#006400>' ''Leggiamo dal file "[i]typescript[/i]", ed indirizziamo il contenuto al nuovo Terminale appena aperto:''</font>
  Shell "cat typescript > /dev/pts/1"
+
    Shell "cat typescript > /dev/pts/1"
 
   
 
   
 
  '''End'''
 
  '''End'''

Versione delle 12:25, 2 ott 2012

La questione è abbastanza complessa. Si tratta di capire come poter raccogliere (leggere) quanto viene mostrato all'interno di una finestra di un Terminale.

E' il caso di precisare che è non si intende capire come intercettare, ma come raccogliere tutto ciò che è leggibile nel Terminale.

Facciamo un esempio pratico: si apra un Terminale, e si lanci per esempio il comando: ls.

La domanda è: come raccogliere con codice Gambas il risultato visibile nel Terminale di quel comando ?

Allo stato attuale delle conoscenze di chi scrive, bisognerà trovare un compromesso fra comandi Bash e funzioni Gambas.


Uso del comando "Script"

Faremo in modo da aprire una finestra di Terminale e lanciarvi all'interno il comando Script:

Public Sub Form_Open()

  Shell "gnome-terminal -e script"

End

Nella medesima cartella ove è posizionato l'eseguibile Gambas, sarà creato un file, chiamato: "[i]typescript[/i]". Si comincerà a scrivere e ad usare normalmente il termminale. Conclusa la scrittura, si dovrà lanciare in Terminale il comando Exit. Questa fase finale chiuderà il Terminale, e procederà a copiare all'interno del file "[i]typescript[/i]" quanto scritto e ritornato nel predetto Terminale, aggiungendovi dei codici speciali, leggibili ed interpretabili solo da un Terminale. Quindi, tornando in Gambas, si potrà leggere agevolmente in un nuovo Terminale, quanto presente nel file "[i]typescript[/i]":

Public Sub Button1_Click()

  Desktop.OpenTerminal

' Attendiamo la creazione del file speciale "/dev/pts/1":
  Do
    Wait 0.01
  Loop Until Exist("/dev/pts/1")
 
 ' Leggiamo dal file "[i]typescript[/i]", ed indirizziamo il contenuto al nuovo Terminale appena aperto:
    Shell "cat typescript > /dev/pts/1"

End