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

Da Gambas-it.org - Wikipedia.
 
(2 versioni intermedie di uno stesso utente non sono mostrate)
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   
Riga 43: Riga 42:
 
    
 
    
 
  <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
 +
 +
 +
 +
=Note=
 +
[1] Vedere anche le seguenti pgine della Wiki:
 +
* [[Spostare da codice il cursore all'interno del Terminale]]
 +
* [[Stampare un punto nella console o nel Terminale alle coordinate x, y]]

Versione attuale delle 15:58, 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


Note

[1] Vedere anche le seguenti pgine della Wiki: