Differenze tra le versioni di "Pulire il Terminale via codice"

Da Gambas-it.org - Wikipedia.
 
(2 versioni intermedie di uno stesso utente non sono mostrate)
Riga 1: Riga 1:
Per ottenere la ''pulizia'' del Terminale da quanto è stato in esso stampato, si possono adottare almeno tre modalità.
+
#REDIRECT [[Pulire_il_Terminale_o_la_console_via_codice]]
 
 
 
 
==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 "<FONT Color=#B22222>\e[2J</font>"
 
 
 
  Print "Testo qualsiasi"
 
 
 
'''End'''
 
 
 
 
 
==Uso di ''Shell'' e del comando ''clear''==
 
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.
 
 
 
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 
 
 
 
<FONT color=gray>' ''Va verificato se l'attivazione di questa riga è necessaria:''
 
  ' Shell "export TERM=xterm"</font>
 
 
 
  For i = 1 To 2 
 
    Print "Testo qualsiasi"
 
    Wait 1   
 
  Next
 
 
 
  Wait 1 
 
   
 
<FONT color=gray>' ''Puliamo il Terminale inviandogli il comando "clear":''</font>
 
  Shell "clear" 
 
   
 
  Wait 0.01 
 
  Print "Testo qualsiasi" 
 
  Wait 2 
 
   
 
'''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''.<SUP>[ [[#Note|Nota 1]] ]</sup>
 
 
 
 
 
Esempio pratico:
 
Library "libc:6"
 
 
<FONT Color=gray>' ''int system (const char *__command)''
 
' ''Execute the given line as a shell command.''</font>
 
Private Extern system_C(__command As String) As Integer Exec "system"
 
 
 
'''Public''' Sub Main()
 
 
 
  Print "Testo qualsiasi"
 
 
 
  Sleep 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
 

Versione attuale delle 04:21, 8 gen 2022