Pulire il Terminale o la console via codice
Come sappiamo, per pulire la console dell'IDE di Gambas da quanto è stato in esso stampato, è sufficiente cliccare sull'apposito tastino scuro con la x interna bianca posto poco sopra la console stessa sulla sinistra, oppure premere Ctrl+l.
Per pulire via codice la console dell'IDE di Gambas o il Terminale da quanto in essi stampato da un programma Gambas, si possono adottare almeno tre modalità.
Indice
Uso della sequenza di escape \e[2J
Si può fare uso della funzione Print o della funzione Write seguita dalla sequenza di escape \e[2J .
Esempio:
Public Sub Main() Print "Testo qualsiasi" Wait 1 Print "Testo qualsiasi" Wait 1 Write "\e[2J" ' Se il Terminale o la Console non viene pulito dal testo presente, potrebbe rendersi necessario l'uso della funzione "Flush": Flush End
Uso di Shell e del comando clear
Pulizia del Terminale
Di norma, la pulizia del Terminale avviene con il comando "clear" (ma anche con Ctrl+l da tastiera). Pertanto, se si opera con un applicativo a riga di comando, bisognerà inviare detto comando al Terminale.
Nel caso di pulizia del Terminale va segnalato che potrebbe essere necessario inviare preliminarmente la riga: export TERM=xterm, al fine di evitare il problema "TERM environment variable not set". Infatti, per un corretto funzionamento è necessario conoscere l'esatto tipo del terminale su cui si sta lavorando. Andrebbe quindi settata la variabile TERM con la sintassi propria del sistema su cui si lavora.
Mostriamo un esempio pratico:
Public Sub Main() Dim i As Integer ' Va verificato se l'attivazione di questa riga è necessaria: ' Shell "export TERM=xterm" For i = 1 To 2 Print "Testo qualsiasi" Wait 1 Next Wait 1 ' Puliamo il Terminale inviandogli il comando "clear": Shell "clear" Wait 0.01 Print "Testo qualsiasi" Wait 2 End
Pulizia della Console
La pulizia della Console con l'uso di Shell e del comando clear è più semplice:
Public Sub Main() Print "Testo qualsiasi" Wait 2 Shell "clear" End
Uso della funzione esterna "system()" e del comando clear
Un'altra modalità prevede l'uso della funzione esterna "system()", contenuta nella libreria dinamica condivisa "libc.so.6 ", e del comando clear. [nota 1]
Esempio pratico:
Library "libc:6" ' int system (const char *__command) ' Execute the given line as a shell command. Private Extern system_C(__command As String) As Integer Exec "system" Public Sub Main() Print "Testo qualsiasi" Wait 2 system_C("clear") End
Note
[1] Qualcuno sconsiglia l'uso della funzione "system()" per pulire il Terminale: https://forum.ubuntu-it.org/viewtopic.php?f=33&t=481589#p3772094