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

Da Gambas-it.org - Wikipedia.
Riga 8: Riga 8:
 
   Dim fl As File   
 
   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 " & 
+
   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"
 
 
    
 
    
 
  <FONT color=gray>' ''Va verificato se è necessaria l'attivazione della seguente riga:''
 
  <FONT color=gray>' ''Va verificato se è necessaria l'attivazione della seguente riga:''
Riga 19: Riga 18:
 
   Wait 3   
 
   Wait 3   
 
    
 
    
  <FONT color=gray>' ''Sposta il cursore 100 caratteri a sinistra lungo la riga:''</font>
+
  <FONT color=gray>' ''Sposta il cursore 80 caratteri a sinistra lungo la riga:''</font>
   For i = 1 To 100 
+
   For i = 1 To 80
 
     Write #fl, "\x08"   
 
     Write #fl, "\x08"   
 
   Next   
 
   Next   
Riga 26: Riga 25:
 
   Wait 3   
 
   Wait 3   
 
    
 
    
  <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 per 10 volte lungo la riga:''</font>
 
   For i = 1 To 10   
 
   For i = 1 To 10   
 
     Write #fl, "\x09"   
 
     Write #fl, "\x09"   
Riga 34: Riga 33:
 
   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 90 caratteri a sinistra lungo la riga:''</font>
   For i = 1 To 100 
+
   For i = 1 To 90
 
     Write #fl, "\x08"   
 
     Write #fl, "\x08"   
 
     Wait 0.05   
 
     Wait 0.05   

Versione delle 07:42, 25 set 2023

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"
 
' 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 80 caratteri a sinistra lungo la riga:
 For i = 1 To 80
   Write #fl, "\x08"  
 Next  
 
 Wait 3  
 
' Salta di 8 caratteri alla volta a destra per 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 90 caratteri a sinistra lungo la riga:
 For i = 1 To 90
   Write #fl, "\x08"  
   Wait 0.05  
 Next  
 
 Wait 4  
  
' Va in chiusura:
 Shell "clear"    ' Pulisce la finestra del terminale
 fl.Close
 
End