Differenze tra le versioni di "Spostare da codice il cursore all'interno del Terminale"

Da Gambas-it.org - Wikipedia.
Riga 3: Riga 3:
  
 
Nel seguente codice esemplificativo, sposteremo il cursore all'interno del Terminale posizionandolo in due posizioni successive diverse. Scriveremo in ciascuno spostamento due parole diverse che coloreremo la prima di giallo e la seconda di rosso. Il codice va compilato come eseguibile ''.gambas'' e lanciato direttamente nel Terminale.
 
Nel seguente codice esemplificativo, sposteremo il cursore all'interno del Terminale posizionandolo in due posizioni successive diverse. Scriveremo in ciascuno spostamento due parole diverse che coloreremo la prima di giallo e la seconda di rosso. Il codice va compilato come eseguibile ''.gambas'' e lanciato direttamente nel Terminale.
  '''Public''' Sub Main()   
+
  Public Sub Main()   
 
    
 
    
 
   Dim fl As File   
 
   Dim fl As File   
 
    
 
    
  fl = Open "/dev/stdout" For Write   
+
  fl = Open "/dev/stdout" For Write
    
+
   
  Write #fl, "\e[1;33m"  <FONT color=gray>' ''Coloriamo il testo di giallo''</font>  
+
   Wait 2
  Write #fl, "\e[10;10f"  <FONT color=gray>' ''Posizioniamo il cursore''</font>
+
  Write #fl, "giallo"   
+
  Write #fl, "\e[1;33m"  <FONT color=gray>' ''Coloriamo il testo di giallo''</font>  
    
+
  Write #fl, "\e[5;10f"  <FONT color=gray>' ''Posizioniamo il cursore''</font>
  Wait 3   
+
  Write #fl, "giallo"
    
+
   
  Write #fl, "\e[1;31m"  <FONT color=gray>' ''Coloriamo il testo di rosso''</font>
+
   Wait 3
  Write #fl, "\e[20;30f"  <FONT color=gray>' ''Posizioniamo il cursore''</font>
+
   
  Write #fl, "rosso"
+
   Write #fl, "\e[1;31m"  <FONT color=gray>' ''Coloriamo il testo di rosso''</font>
 
+
  Write #fl, "\e[10;30f"  <FONT color=gray>' ''Posizioniamo il cursore''</font>
  Wait 3  
+
  Write #fl, "rosso"   
 
    
 
    
 +
  Wait 3 
 
   
 
   
 
  <FONT color=gray>' ''Va in chiusura:''</font>
 
  <FONT color=gray>' ''Va in chiusura:''</font>
 
 
   Shell "clear"      <FONT color=gray>' ''Puliamo il Terminale''</font>
 
   Shell "clear"      <FONT color=gray>' ''Puliamo il Terminale''</font>
 
   Write #fl, "\e[0m" <FONT color=gray>' ''Ripristiniamo il colore prestabilito''</font>
 
   Write #fl, "\e[0m" <FONT color=gray>' ''Ripristiniamo il colore prestabilito''</font>
 
   fl.Close   
 
   fl.Close   
 
    
 
    
  '''End'''
+
  End
  
  

Versione delle 07:30, 25 set 2023

Per poter spostare da codice il cursore all'interno della finestra di un Terminale, bisogna operare con il protocollo supportato dal prompt Bash (PS1). [Nota 1]


Nel seguente codice esemplificativo, sposteremo il cursore all'interno del Terminale posizionandolo in due posizioni successive diverse. Scriveremo in ciascuno spostamento due parole diverse che coloreremo la prima di giallo e la seconda di rosso. Il codice va compilato come eseguibile .gambas e lanciato direttamente nel Terminale.

Public Sub Main()  
 
 Dim fl As File  
 
 fl = Open "/dev/stdout" For Write  

 Wait 2

 Write #fl, "\e[1;33m"   ' Coloriamo il testo di giallo 
 Write #fl, "\e[5;10f"  ' Posizioniamo il cursore
 Write #fl, "giallo"  

 Wait 3  

 Write #fl, "\e[1;31m"   ' Coloriamo il testo di rosso
 Write #fl, "\e[10;30f"  ' Posizioniamo il cursore
 Write #fl, "rosso"  
 
 Wait 3  

' Va in chiusura:
  Shell "clear"      ' Puliamo il Terminale
  Write #fl, "\e[0m" ' Ripristiniamo il colore prestabilito
  fl.Close  
 
End



Note

[1] Vedere anche questa pagina della Wiki: Stampare un punto nella console o nel Terminale alle coordinate x, y