Differenze tra le versioni di "Spostare il cursore in un Terminale lungo una riga di caratteri"

Da Gambas-it.org - Wikipedia.
Riga 28: Riga 28:
 
    
 
    
 
  <FONT color=gray>' ''Salta di 8 caratteri alla volta a destra x 10 volte lungo la riga:''</font>
 
  <FONT color=gray>' ''Salta di 8 caratteri alla volta a destra x 10 volte lungo la riga:''</font>
  For i = 1 To 10   
+
  For i = 1 To 10   
    Write #fl, "\x09"   
+
    Write #fl, "\x09"   
    Wait 0.3   
+
    Wait 0.3   
  Next   
+
  Next   
 
    
 
    
  Wait 2   
+
  Wait 2   
 
    
 
    
 
  <FONT color=gray>' ''Sposta (ora più lentamente) il cursore di 100 caratteri a sinistra lungo la riga:''</font>
 
  <FONT color=gray>' ''Sposta (ora più lentamente) il cursore di 100 caratteri a sinistra lungo la riga:''</font>
  For i = 1 To 100   
+
  For i = 1 To 100   
    Write #fl, "\x08"   
+
    Write #fl, "\x08"   
    Wait 0.05   
+
    Wait 0.05   
  Next   
+
  Next   
 
    
 
    
  Wait 4   
+
  Wait 4   
 
    
 
    
 
 
  <FONT color=gray>' ''Va in chiusura:''</font>
 
  <FONT color=gray>' ''Va in chiusura:''</font>
+
 
  Shell "clear"    <FONT color=gray>' ''Pulisce la finestra del terminale''</font>
+
  Shell "clear"    <FONT color=gray>' ''Pulisce la finestra del terminale''</font>
  fl.Close
+
  fl.Close
 
    
 
    
 
  '''End'''
 
  '''End'''

Versione delle 02:22, 23 giu 2020

Per poter spostare il cursore lungo una riga di caratteri all'interno del Terminale, dovremo inviare i comandi necessari, costituiti in tal caso semplicemente da caratteri escape, al file-device "/dev/stdout" del Terminale medesimo.


Mostriamo di seguito un esempio "a riga di comando" che dovrà essere compilato e lanciato direttamente dal Terminale:

Public Sub Main()  
  
 Dim i As Integer  
 Dim s As String  
 Dim fl As File  
 
 s = "aaa bbb cccc ddd eee ffff gggg hhhh iiii llll mmmm nnnn oooo pppp qqqq rrr ssss tttt vvvvv uuuu zzz " &  
     "aaa bbb cccc ddd eee ffff gggg hhhh iiii llll mmmm nnnn oooo pppp"
 
' Va verificato se è necessaria l'attivazione della seguente riga:
' Shell "export TERM=xterm"
 
 fl = Open "/dev/stdout" For Write  
 Write #fl, s  
   
 Wait 3  
 
' Sposta il cursore 100 caratteri a sinistra lungo la riga:
 For i = 1 To 100  
   Write #fl, "\x08"  
 Next  
 
 Wait 3  
 
' Salta di 8 caratteri alla volta a destra x 10 volte lungo la riga:
 For i = 1 To 10  
   Write #fl, "\x09"  
   Wait 0.3  
 Next  
 
 Wait 2  
 
' Sposta (ora più lentamente) il cursore di 100 caratteri a sinistra lungo la riga:
 For i = 1 To 100  
   Write #fl, "\x08"  
   Wait 0.05  
 Next  
 
 Wait 4  
  
' Va in chiusura:
 
 Shell "clear"    ' Pulisce la finestra del terminale
 fl.Close
 
End