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

Da Gambas-it.org - Wikipedia.
Riga 1: Riga 1:
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à.
+
Per determinare in un'applicazione ''a riga di comando'' (quindi lanciata da Terminale) la semplice e <SPAN Stye="text-decoration:underline">sola</span> attesa della pressione del tasto ''Invio'', potrà essere utilizzato l'Evento "_Read()" della Classe ''[https://www.gambas-it.org/wiki/index.php/Uso_della_classe_Application#.Read.28.29 Application]''
==Uso dell'istruzione "File.In.ReadLine()"==
 
Questa modalità utilizza direttamente l'istruzione "File.In.ReadLine()".
 
<BR>Il Metodo "[[.ReadLine()]]" legge dal flusso una riga fino al carattere ''escape'' di "fine riga e a capo".
 
  
Esempio:
+
Modo mostriamo il seguente semplice esempio:
Public Sub Main()
 
 
  Dim s As String
 
 
<FONT Color=gray>' ''Legge una riga di dati dallo "stdin":''</font>
 
  s = File.In.ReadLine()
 
 
  Print s
 
 
End
 
 
 
 
 
==Uso dell'evento ''Application_Read()''==
 
Per questa modalità che si basa sulla sollevazione dell'Evento "_Read()" della Classe ''Application'', si rinvia alla seguente pagina:
 
<BR>https://www.gambas-it.org/wiki/index.php/Uso_della_classe_Application#.Read.28.29
 
 
 
Mmodo mostriamo il seguente semplice esempio:
 
 
  Private bo As Boolean
 
  Private bo As Boolean
 
   
 
   
 
  Public Sub Main()
 
  Public Sub Main()
 
   
 
   
  <FONT Color=gray>' ''Il ciclo continua, funché la viariabile "bo" non sarà diventata "Vera":''</font>
+
  <FONT Color=gray>' ''Il ciclo continua, finché la variabile "bo" non sarà diventata "Vera":''</font>
 
   Repeat
 
   Repeat
 
     wait 0.01
 
     wait 0.01
Riga 42: Riga 22:
 
   
 
   
 
  End
 
  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
 
 
 
  <FONT Color=#B22222>Input s</font>
 
   
 
  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
 
 
 
  <FONT Color=#B22222>Input #File.In, s</font>
 
 
 
  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 "<FONT Color=#B22222>/dev/stdin</font>" For Read
 
 
 
  <FONT Color=#B22222>Input #fl, s</font>
 
 
 
  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 "<FONT Color=#B22222>/dev/tty</font>" For Read
 
 
  <FONT Color=#B22222>Input #fl, s</font>
 
     
 
  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 "<FONT Color=#B22222>/dev/pts/...</font>" For Read
 
 
  <FONT Color=#B22222>Input #fl, s</font>
 
         
 
  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 "<FONT Color=#B22222>/proc/self/fd/0</font>" For Read
 
 
 
  <FONT Color=#B22222>Input #fl, s</font>
 
       
 
  fl.Close
 
 
 
  Print "Tasto premuto !", s
 
 
'''End'''
 

Versione delle 15:30, 20 nov 2023

Per determinare in un'applicazione a riga di comando (quindi lanciata da Terminale) la semplice e sola attesa della pressione del tasto Invio, potrà essere utilizzato l'Evento "_Read()" della Classe Application

Modo mostriamo il seguente semplice esempio:

Private bo As Boolean

Public Sub Main()

' Il ciclo continua, finché la variabile "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