Differenze tra le versioni di "Rendere la console dell'IDE funzionale come un Terminale"

Da Gambas-it.org - Wikipedia.
 
(7 versioni intermedie di uno stesso utente non sono mostrate)
Riga 1: Riga 1:
 
E' possibile rendere funzionale la console dell'IDE di Gambas similmente ad un Terminale.
 
E' possibile rendere funzionale la console dell'IDE di Gambas similmente ad un Terminale.
  
Per ottenere questo risultato è necessario lanciare da codice la ''shell'' mediante il comando ''Exec[]'' nel modo che segue:
+
Per ottenere questo risultato è necessario lanciare da codice la ''shell'' mediante l'istruzione "Exec[]" usando il comando ''bash'':
  '''Public''' Sub Button1_Click()
+
  Public Sub Button1_Click()
 
   
 
   
    Exec [System.Shell]
+
  Exec ["bash"]
 
   
 
   
  '''End'''
+
  End
  
  
Per disattivare tale funzionalità, bisognerà gestirne il processo con ''Porcess'' e distruggerlo mediante il metodo ''.Kill'':
+
===Usare la Proprietà ".Shell" della Classe ''System''===
  '''Private''' pr As Process
+
  Public Sub Button1_Click()
 
   
 
   
 +
  Exec [System.Shell]
 
   
 
   
  '''Public''' Sub Button1_Click()
+
  End
 +
Si potrà anche scegliere la "shell" da utilizzare, assegnandola alla Proprietà ".Shell".
 +
<BR>Esempio:
 +
System.Shell = System.Find("bash")
 +
 
 +
Per disattivare tale funzionalità, bisognerà gestirne il processo con ''Process'' e distruggerlo mediante il metodo ''.Kill'':
 +
Private pr As Process
 +
 +
 +
Public Sub Button1_Click()
 
   
 
   
  <FONT color=gray>' ''Gestiamo il processo, creato da "Exec", mediante una variabile di tipo "Process":''</font>
+
  <FONT color=gray>' ''Gestisce il processo, creato da "Exec", mediante una variabile di tipo "Process":''</font>
  pr = Exec [System.Shell]
+
  pr = Exec [System.Shell]
 
   
 
   
  '''End'''
+
  End
 
   
 
   
 
   
 
   
  '''Public''' Sub Button2_Click()
+
  Public Sub Button2_Click()
 
   
 
   
  <FONT color=gray>' ''Distruggiamo il processo creato con "Exec":''</font>
+
  <FONT color=gray>' ''Distrugge il processo creato con "Exec":''</font>
  <FONT color=B22222>pr.Kill</font>
+
  <FONT color=B22222>pr.Kill</font>
 
   
 
   
  '''End'''
+
  End
  
  
 
==Lanciare comandi e programmi dalla console dell'IDE di Gambas==
 
==Lanciare comandi e programmi dalla console dell'IDE di Gambas==
 
In particolare si potranno lanciare in tal modo dalla console comandi ''bash'' e programmi in generale sia scrivendoli manualmente (proprio come in un Terminale), sia in alternativa - come nell'esempio che segue - via codice con l'uso di ''Process'':
 
In particolare si potranno lanciare in tal modo dalla console comandi ''bash'' e programmi in generale sia scrivendoli manualmente (proprio come in un Terminale), sia in alternativa - come nell'esempio che segue - via codice con l'uso di ''Process'':
  '''Private''' pr As Process
+
  Private pr As Process
 
   
 
   
 
   
 
   
  '''Public''' Sub Form_Open()
+
  Public Sub Form_Open()
 
   
 
   
    pr = Exec [System.Shell] For Write
+
  pr = Exec [System.Shell] For Write
 
   
 
   
  '''End'''
+
  End
 
   
 
   
 
   
 
   
  '''Public''' Sub Button1_Click()
+
  Public Sub Button1_Click()
 
   
 
   
    Print #pr, "whereis gambas"
+
  Print #pr, "whereis gambas"
 
   
 
   
    Print #pr, "gedit"
+
  Print #pr, "gedit"
 
   
 
   
  '''End'''
+
  End
  
  
 
Inoltre, via codice sarà anche possibile raccogliere i dati di risultato dalla console, ponendo sotto osservazione il processo della ''shell'', per gestirli altrove:
 
Inoltre, via codice sarà anche possibile raccogliere i dati di risultato dalla console, ponendo sotto osservazione il processo della ''shell'', per gestirli altrove:
  '''Private''' pr As Process
+
  Private pr As Process
 
   
 
   
 
   
 
   
  '''Public''' Sub Form_Open()
+
  Public Sub Form_Open()
 
   
 
   
    pr = Exec [System.Shell] For Read Write As "processo"
+
  pr = Exec [System.Shell] For Read Write As "processo"
 
   
 
   
  '''End'''
+
  End
 
   
 
   
 
   
 
   
  '''Public''' Sub Button1_Click()
+
  Public Sub Button1_Click()
 
   
 
   
    Print #pr, "whereis gambas"
+
  Print #pr, "whereis gambas"
 
   
 
   
  '''End'''
+
  End
 
   
 
   
 
   
 
   
  '''Public''' Sub processo_Read()
+
  Public Sub processo_Read()
 
   
 
   
 
   Dim s As String
 
   Dim s As String
 
 
 
   
 
   
  Line Input #pr, s
+
  Line Input #pr, s
 
    
 
    
  TextArea1.Text &= s & "\n"
+
  TextArea1.Text &= s & "\n"
 
    
 
    
  '''End'''
+
  End
  
  
 
==Intercettare il testo scritto nella console dell'IDE di gambas==
 
==Intercettare il testo scritto nella console dell'IDE di gambas==
L'attribuzione delle funzionalità tipiche di un terminale alla console dell'IDE di Gambas consente inoltre di poter intercettare e gestire altrove quanto viene semplicemente scritto nella console medesima. Dopo aver scritto il testo nella console, l'utente dovrà <SPAN style="text-decoration:underline">premere il tasto "''Return''" od il tasto "''Invio''"</span>:
+
L'attribuzione delle funzionalità tipiche di un terminale alla console dell'IDE di Gambas consente inoltre di poter intercettare e gestire altrove quanto viene semplicemente scritto nella console medesima. Dopo aver scritto il testo nella console, l'utente dovrà <SPAN style="text-decoration:underline">premere per ogni riga di testo il tasto "Return" o il tasto "Invio"</span>:
  '''Private''' pr As Process
+
  Private pr As Process
  '''Private''' fl As File  
+
  Private fl As File  
 
   
 
   
 
   
 
   
  '''Public''' Sub Form_Open()
+
  Public Sub Form_Open()
 
   
 
   
    pr = Exec [System.Shell] For Write
+
  pr = Exec [System.Shell] For Write
 
   
 
   
  <FONT color=gray>' ''Apriamo in lettura e sottoponiamo in osservazione lo standard Out:''</font>
+
  <FONT color=gray>' ''Apre in lettura e sottopone in osservazione lo standard Output:''</font>
    fl = Open "/dev/stdout" For Read Watch
+
  fl = Open "/dev/stdout" For Read Watch
 
   
 
   
  '''End'''
+
  End
 
   
 
   
 
   
 
   
  '''Public''' Sub File_Read()
+
  Public Sub File_Read()
 
   
 
   
 
   Dim s As String
 
   Dim s As String
 
    
 
    
+
  Line Input #fl, s
  Line Input #fl, s
 
 
    
 
    
  TextArea1.Text &= s
+
  TextArea1.Text &= s
 
    
 
    
  Print "Osservato: "; s
+
  Print "Osservato: "; s
 
   
 
   
  '''End'''
+
  End
 
   
 
   
 
   
 
   
  '''Public''' Sub Button1_Click()
+
  Public Sub Button1_Click()
 
+
 
  <FONT color=gray>' ''Per andare "a capo" nella TextArea:''</font>
 
  <FONT color=gray>' ''Per andare "a capo" nella TextArea:''</font>
  TextArea1.Text &= Chr(10)
+
  TextArea1.Text &= Chr(10)
 
    
 
    
  '''End'''
+
  End

Versione attuale delle 08:30, 21 nov 2023

E' possibile rendere funzionale la console dell'IDE di Gambas similmente ad un Terminale.

Per ottenere questo risultato è necessario lanciare da codice la shell mediante l'istruzione "Exec[]" usando il comando bash:

Public Sub Button1_Click()

 Exec ["bash"]

End


Usare la Proprietà ".Shell" della Classe System

Public Sub Button1_Click()

 Exec [System.Shell]

End

Si potrà anche scegliere la "shell" da utilizzare, assegnandola alla Proprietà ".Shell".
Esempio:

System.Shell = System.Find("bash")

Per disattivare tale funzionalità, bisognerà gestirne il processo con Process e distruggerlo mediante il metodo .Kill:

Private pr As Process


Public Sub Button1_Click()

' Gestisce il processo, creato da "Exec", mediante una variabile di tipo "Process":
 pr = Exec [System.Shell]

End


Public Sub Button2_Click()

' Distrugge il processo creato con "Exec":
 pr.Kill

End


Lanciare comandi e programmi dalla console dell'IDE di Gambas

In particolare si potranno lanciare in tal modo dalla console comandi bash e programmi in generale sia scrivendoli manualmente (proprio come in un Terminale), sia in alternativa - come nell'esempio che segue - via codice con l'uso di Process:

Private pr As Process


Public Sub Form_Open()

 pr = Exec [System.Shell] For Write

End


Public Sub Button1_Click()

 Print #pr, "whereis gambas"

 Print #pr, "gedit"

End


Inoltre, via codice sarà anche possibile raccogliere i dati di risultato dalla console, ponendo sotto osservazione il processo della shell, per gestirli altrove:

Private pr As Process


Public Sub Form_Open()

 pr = Exec [System.Shell] For Read Write As "processo"

End


Public Sub Button1_Click()

 Print #pr, "whereis gambas"

End


Public Sub processo_Read()

 Dim s As String

 Line Input #pr, s
  
 TextArea1.Text &= s & "\n"
 
End


Intercettare il testo scritto nella console dell'IDE di gambas

L'attribuzione delle funzionalità tipiche di un terminale alla console dell'IDE di Gambas consente inoltre di poter intercettare e gestire altrove quanto viene semplicemente scritto nella console medesima. Dopo aver scritto il testo nella console, l'utente dovrà premere per ogni riga di testo il tasto "Return" o il tasto "Invio":

Private pr As Process
Private fl As File 


Public Sub Form_Open()

 pr = Exec [System.Shell] For Write

' Apre in lettura e sottopone in osservazione lo standard Output:
 fl = Open "/dev/stdout" For Read Watch

End


Public Sub File_Read()

 Dim s As String
 
 Line Input #fl, s
  
 TextArea1.Text &= s
 
 Print "Osservato: "; s

End


Public Sub Button1_Click()

' Per andare "a capo" nella TextArea:
 TextArea1.Text &= Chr(10)
 
End