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

Da Gambas-it.org - Wikipedia.
(Creata pagina con '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 ''e...')
 
Riga 9: Riga 9:
 
   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 qqqq rrr ssss tttt vvvvv uuuu zzz " & 
+
      "aaa bbb cccc ddd eee ffff gggg hhhh iiii llll mmmm nnnn oooo pppp"
      "aaa bbb cccc ddd eee ffff gggg hhhhh"
 
 
    
 
    
 
  <FONT color=gray>' ''Va verificato se è necessaria l'attivazione della seguente riga:''
 
  <FONT color=gray>' ''Va verificato se è necessaria l'attivazione della seguente riga:''
 
  ' Shell "export TERM=xterm"</font>
 
  ' Shell "export TERM=xterm"</font>
 
    
 
    
  fl = Open "/dev/stdout" For Write   
+
  fl = Open "/dev/stdout" For Write   
  Write #fl, s   
+
  Write #fl, s   
 
      
 
      
  Wait 3   
+
  Wait 3   
 
    
 
    
 
  <FONT color=gray>' ''Sposta il cursore 100 caratteri a sinistra lungo la riga:''</font>
 
  <FONT color=gray>' ''Sposta il cursore 100 caratteri a sinistra lungo la riga:''</font>
  For i = 1 To 100   
+
  For i = 1 To 100   
    Write #fl, "\x08"   
+
    Write #fl, "\x08"   
  Next   
+
  Next   
 
    
 
    
  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 x 10 volte lungo la riga:''</font>
Riga 36: Riga 35:
 
   Wait 2   
 
   Wait 2   
 
    
 
    
  <FONT color=gray>' ''Sposta (ora più lentamente) il cursore di 150 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 150  
+
   For i = 1 To 100  
 
     Write #fl, "\x08"   
 
     Write #fl, "\x08"   
 
     Wait 0.05   
 
     Wait 0.05   

Versione delle 02:21, 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