Differenze tra le versioni di "Attendere in un'applicazione 'a riga di comando' la pressione del tasto 'Invio'"
Riga 66: | Riga 66: | ||
===Uso del file-device ''/dev/pts/...''=== | ===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: | + | 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() | '''Public''' Sub Main() | ||
Riga 73: | Riga 73: | ||
fl = Open "<FONT Color=#B22222>/dev/pts/...</font>" For Read | fl = Open "<FONT Color=#B22222>/dev/pts/...</font>" For Read | ||
+ | |||
+ | Do | ||
+ | <FONT Color=#B22222>Read #fl, s, -256</font> | ||
+ | Loop Until s <> Null | ||
+ | |||
+ | Print "Tasto premuto !" | ||
+ | |||
+ | '''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 "<FONT Color=#B22222>/proc/self/fd/0</font>" For Read | ||
Do | Do |
Versione delle 04:01, 24 dic 2014
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 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 Do Read #fl, s, -256 Loop Until s <> Null Print "Tasto premuto !" 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 Do Read #fl, s, -256 Loop Until s <> Null Print "Tasto premuto !" End