Differenze tra le versioni di "Attendere in un'applicazione 'a riga di comando' la pressione del tasto 'Invio'"
Riga 4: | Riga 4: | ||
==Uso dell'evento ''Application_Read()''== | ==Uso dell'evento ''Application_Read()''== | ||
Per questa modalità che si basa sulla sollevazione dell'Evento "_Read()" della Classe ''Application'', si rinvia alla seguente pagina: | 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 | + | <BR>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() | ||
+ | |||
+ | <FONT Color=gray>' ''Il ciclo continua, funché la viariabile "bo" non sarà diventata "Vera":''</font> | ||
+ | Repeat | ||
+ | wait 0.01 | ||
+ | Until bo | ||
+ | |||
+ | <FONT Color=gray>' ''Poiché si usa l'Evento "Application_Read()", per terminare il programma è necesario prevedere alla fine l'istruzione "Quit":''</font> | ||
+ | Quit | ||
+ | |||
+ | '''End''' | ||
+ | |||
+ | '''Public''' Sub Application_Read() | ||
+ | |||
+ | bo = True | ||
+ | |||
+ | '''End''' | ||
Versione delle 08:07, 31 ago 2022
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