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 | + | 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. La visualizzazione del risultato, 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() | ||
Riga 16: | Riga 16: | ||
Write #fl, s | Write #fl, s | ||
− | + | ||
For j = 1 To 80 <FONT color=gray>' ''Ci spostiamo di 80 caratteri a sinistra lungo la stringa visibile sul Terminale''</font> | For j = 1 To 80 <FONT color=gray>' ''Ci spostiamo di 80 caratteri a sinistra lungo la stringa visibile sul Terminale''</font> | ||
Write #fl, "\x08" | Write #fl, "\x08" | ||
Riga 25: | 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, nelle quali è posizionato il cursore al termine dello spostamento lungo la stringa.'' | + | ' ''Nel risultato mostrato il primo valore numerico è la riga, il secondo (a cominciare da indice 0) è 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:''</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" |
Versione attuale delle 13:29, 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. La visualizzazione del risultato, 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 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 (a cominciare da indice 0) è 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