Differenze tra le versioni di "Conoscere la riga e la colonna nelle quali è posizionato il cursore in un Terminale"
Da Gambas-it.org - Wikipedia.
(Creata pagina con '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 c...') |
|||
(2 versioni intermedie di uno stesso utente non sono mostrate) | |||
Riga 7: | Riga 7: | ||
Dim s As String | Dim s As String | ||
− | Dim fl As File | + | Dim fl As File |
+ | Dim j As Byte | ||
Riga 18: | Riga 19: | ||
Write #fl, s | Write #fl, s | ||
Wait 0.1 | Wait 0.1 | ||
− | For | + | 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" | ||
Wait 0.3 | Wait 0.3 | ||
Riga 38: | Riga 39: | ||
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" | ||
Shell "clear" | Shell "clear" | ||
fl.Close | fl.Close | ||
'''End''' | '''End''' |
Versione attuale delle 17:16, 6 ott 2014
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