Attendere in un'applicazione 'a riga di comando' la pressione del tasto 'Invio'
Per determinare in un'applicazione "a riga di comando" (quindi lanciata da Terminale) l'attesa della pressione del tasto Invio, potranno essere utilizzate diverse modalità.
Indice
Uso dell'evento Application_Read()
Per questa modalità che si basa sulla sollevazione dell'Evento "_Read()" della Classe Application, si rinvia alla seguente pagina:
https://www.gambas-it.org/wiki/index.php/Uso_della_classe_Application#.Read.28.29
Ad ogni mmodo mostriamo il seguente semplice esempio:
Private bo As Boolean Public Sub Main() ' Il ciclo continua, funché la viariabile "bo" non sarà diventata "Vera": Repeat wait 0.01 Until bo ' Poiché si usa l'Evento "Application_Read()", per terminare il programma è necesario prevedere alla fine l'istruzione "Quit": Quit End Public Sub Application_Read() bo = True End
Uso della funzione Input
Questa modalità prevede il semplice uso della funzione Input in varie possibilità che di seguito si espongono.
Uso di Input e di una variabile stringa
Questa modalità fa semplicemente uso di Input ed una variabile di tipo stringa:
Public Sub Main() Dim s As String Input s Print "Tasto premuto !", s End
Uso della proprietà File.In
Questa modalità fa uso in modo diretto della proprietà File.In che ritorna lo standard input del flusso:
Public Sub Main() Dim s As String Input #File.In, s Print "Tasto premuto !", s End
Uso del file-device /dev/stdin
Questa modalità fa uso del file-device /dev/stdin che dovrà essere aperto in lettura:
Public Sub Main() Dim fl As File Dim s As String fl = Open "/dev/stdin" For Read Input #fl, s fl.Close Print "Tasto premuto !", s End
Uso del file-device /dev/tty
Questa modalità fa uso del file-device /dev/tty che dovrà essere aperto in lettura:
Public Sub Main() Dim fl As File Dim s As String fl = Open "/dev/tty" For Read Input #fl, s fl.Close Print "Tasto premuto !", s End
Uso del file-device /dev/pts/...
Questa modalità fa uso del file-device /dev/pts/... specifico del Terminale nel quale è stata lanciata la nostra applicazione a riga di comando. Lo specifico file-device di tipo pts, è identificato con un numero che però andrà preventivamente individuato e dovrà essere aperto in lettura:
Public Sub Main() Dim fl As File Dim s As String fl = Open "/dev/pts/..." For Read Input #fl, s fl.Close Print "Tasto premuto !", s End
Uso del file /proc/self/fd/0
Questa modalità fa uso del file /proc/self/fd/0 che dovrà essere aperto in lettura:
Public Sub Main() Dim fl As File Dim s As String fl = Open "/proc/self/fd/0" For Read Input #fl, s fl.Close Print "Tasto premuto !", s End