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()
Questa modalità è mostrata anche in questa pagina della WIKI, esi basa sulla sollevazione dell'evento _Read() della Classe Application.
Per una dimostrazione pratica si rinvia alla predetta pagina della WIKI.
Uso di un ciclo Do...Loop Until...
Questa modalità prevede un ciclo che continuerà sino a che una variabile di tipo stringa non assume un valore determinato dalla pressione del tasto Invio.
All'interno del ciclo verrà posta l'istruzione Read per la lettura - a seconda dei casi - del flusso aperto.
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 Do Read #File.In, s, -256 Loop Until s <> Null Print "Tasto premuto !" 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 Do Read #fl, s, -256 Loop Until s <> Null Print "Tasto premuto !" 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 Do Read #fl, s, -256 Loop Until s <> Null Print "Tasto premuto !" 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 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 Do Read #fl, s, -256 Loop Until s <> Null Print "Tasto premuto !" End