Differenze tra le versioni di "Rendere la console dell'IDE funzionale come un Terminale"
(9 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 '' | + | 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". | ||
+ | <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>' '' | + | <FONT color=gray>' ''Gestisce il processo, creato da "Exec", mediante una variabile di tipo "Process":''</font> |
− | + | pr = Exec [System.Shell] | |
− | + | End | |
− | + | Public Sub Button2_Click() | |
− | <FONT color=gray>' '' | + | <FONT color=gray>' ''Distrugge il processo creato con "Exec":''</font> |
− | + | <FONT color=B22222>pr.Kill</font> | |
− | + | 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 | |
− | + | 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: | 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 | Dim s As String | ||
− | |||
− | + | Line Input #pr, s | |
− | + | TextArea1.Text &= s & "\n" | |
− | + | 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 scritto <SPAN style="text-decoration:underline"> | + | 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 fl As File | |
− | + | Public Sub Form_Open() | |
− | + | pr = Exec [System.Shell] For Write | |
− | <FONT color=gray>' '' | + | <FONT color=gray>' ''Apre in lettura e sottopone in osservazione lo standard Output:''</font> |
− | + | fl = Open "/dev/stdout" For Read Watch | |
− | + | End | |
− | + | Public Sub File_Read() | |
Dim s As String | Dim s As String | ||
+ | Line Input #fl, s | ||
+ | |||
+ | TextArea1.Text &= s | ||
+ | |||
+ | Print "Osservato: "; s | ||
− | + | End | |
− | + | ||
− | + | ||
+ | Public Sub Button1_Click() | ||
+ | |||
+ | <FONT color=gray>' ''Per andare "a capo" nella TextArea:''</font> | ||
+ | TextArea1.Text &= Chr(10) | ||
− | + | 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