Differenze tra le versioni di "Conoscere la riga e la colonna nelle quali è posizionato il cursore in un Terminale"

Da Gambas-it.org - Wikipedia.
Riga 1: Riga 1:
 
Per conoscere il numero di riga ed il numero di colonna, nei quali è posizionato il cursore all'interno di un Terminale, bisognerà inviare al Terminale medesimo la riga di comando ''\e[6n'' .
 
Per conoscere il numero di riga ed il numero di colonna, nei quali è posizionato il cursore all'interno di un Terminale, bisognerà inviare al Terminale medesimo la riga di comando ''\e[6n'' .
 
  
 
Di seguito mostriamo un esempio "''a riga di comando''", da lanciare direttamente in un Terminale, con il quale il cursore verrà spostato di 80 caratteri a sinistra lungo una stringa. Al termine verrà indicata la posizione del cursore medesimo. Il risultato dell'esempio, seppur efficace, è ancora un po' grezzo.
 
Di seguito mostriamo un esempio "''a riga di comando''", da lanciare direttamente in un Terminale, con il quale il cursore verrà spostato di 80 caratteri a sinistra lungo una stringa. Al termine verrà indicata la posizione del cursore medesimo. Il risultato dell'esempio, seppur efficace, è ancora un po' grezzo.
 
<BR>La finestra del Terminale andrà aperta a schermo intero.
 
<BR>La finestra del Terminale andrà aperta a schermo intero.
  '''Public''' Sub Main()   
+
  Public Sub Main()   
 
 
  Dim s As String 
 
  Dim fl As File
 
  Dim j As Byte
 
 
    
 
    
 +
  Dim s As String 
 +
  Dim fl As File
 +
  Dim j As Byte
 
    
 
    
 
  <FONT color=gray>' ''La stringa, sulla quale sposteremo il cursore, è questa:''</font>  
 
  <FONT color=gray>' ''La stringa, sulla quale sposteremo il cursore, è questa:''</font>  
Riga 27: Riga 25:
 
    
 
    
 
  <FONT color=gray>' ''Inviamo al Terminale il comando necessario per conoscere la posizione del cursore.''  
 
  <FONT color=gray>' ''Inviamo al Terminale il comando necessario per conoscere la posizione del cursore.''  
  ' ''Nel risultato mostrato il primo valore numerico è la riga, il secondo è la colonna,''
+
  ' ''Nel risultato mostrato il primo valore numerico è la riga, il secondo è la colonna, nelle quali è posizionato il cursore al termine dello spostamento lungo la stringa.''
' ''nelle quali è posizionato il cursore al termine dello spostamento lungo la stringa.''
 
 
  ' ''La scritta per maggiore evidenza sarà in grassetto e colorata di giallo:''</font>
 
  ' ''La scritta per maggiore evidenza sarà in grassetto e colorata di giallo:''</font>
 
   Write #fl, "\e[1;33m\e[6n"   
 
   Write #fl, "\e[1;33m\e[6n"   
Riga 38: Riga 35:
 
     Read #fl, s, -256   
 
     Read #fl, s, -256   
 
   Loop Until s <> Null   
 
   Loop Until s <> Null   
 
+
   
 
 
  <FONT color=gray>' ''Va in chiusura:''</font>
 
  <FONT color=gray>' ''Va in chiusura:''</font>
 
   Write #fl, "\e[0m"
 
   Write #fl, "\e[0m"
Riga 45: Riga 41:
 
   fl.Close
 
   fl.Close
 
    
 
    
  '''End'''
+
  End

Versione delle 13:16, 1 lug 2024

Per conoscere il numero di riga ed il numero di colonna, nei quali è posizionato il cursore all'interno di un Terminale, bisognerà inviare al Terminale medesimo la riga di comando \e[6n .

Di seguito mostriamo un esempio "a riga di comando", da lanciare direttamente in un Terminale, con il quale il cursore verrà spostato di 80 caratteri a sinistra lungo una stringa. Al termine verrà indicata la posizione del cursore medesimo. Il risultato dell'esempio, seppur efficace, è ancora un po' grezzo.
La finestra del Terminale andrà aperta a schermo intero.

Public Sub Main()  
 
  Dim s As String  
  Dim fl As File
  Dim j As Byte
 
' La stringa, sulla quale sposteremo il cursore, è questa: 
  s = "aaaaaaaaaabbbbbbbbbbccccccccccddddddddddeeeeeeeeeeffffffffffgggggggggghhhhhhhhhh" &
      "iiiiiiiiiillllllllll"  
 
  fl = Open "/dev/stdout" For Read Write  
    
  Write #fl, s    
  Wait 0.1  
  For j = 1 To 80   ' Ci spostiamo di 80 caratteri a sinistra lungo la stringa visibile sul Terminale
    Write #fl, "\x08"    
    Wait 0.3  
  Next    
 
  Wait 2  
 
' Inviamo al Terminale il comando necessario per conoscere la posizione del cursore. 
' Nel risultato mostrato il primo valore numerico è la riga, il secondo è la colonna, nelle quali è posizionato il cursore al termine dello spostamento lungo la stringa.
' La scritta per maggiore evidenza sarà in grassetto e colorata di giallo:
  Write #fl, "\e[1;33m\e[6n"  
 
  Print #fl, "\n\nRiga ; Colonna"  
 
' Esegue il ciclo sino a quando non premeremo il tasto 'Invio':
  Do  
    Read #fl, s, -256  
  Loop Until s <> Null  

' Va in chiusura:
  Write #fl, "\e[0m"
  Shell "clear"
  fl.Close
 
End