Differenze tra le versioni di "Attendere in un'applicazione 'a riga di comando' la pressione del tasto 'Invio'"

Da Gambas-it.org - Wikipedia.
Riga 30: Riga 30:
  
 
===Uso del file-device ''/dev/stdin''===
 
===Uso del file-device ''/dev/stdin''===
Questa modalità fa uso del file-device ''/dev/stdin'' che dovrà essere aperto in lettura:
+
Questa modalità fa uso del file-device ''/dev/stdin'' che dovrà essere aperto in lettura:
 
  '''Public''' Sub Main()
 
  '''Public''' Sub Main()
 
   
 
   
Riga 48: Riga 48:
  
 
===Uso del file-device ''/dev/tty''===
 
===Uso del file-device ''/dev/tty''===
Questa modalità fa uso del file-device ''/dev/tty'' che dovrà essere aperto in lettura:
+
Questa modalità fa uso del file-device ''/dev/tty'' che dovrà essere aperto in lettura:
 
  '''Public''' Sub Main()
 
  '''Public''' Sub Main()
 
   
 
   
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 andrà preventivamente individuato e dovrà essere aperto in lettura:
 
  '''Public''' Sub Main()
 
  '''Public''' Sub Main()
 
   
 
   

Versione delle 03:53, 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à.


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