Differenze tra le versioni di "Passare in runtime il numero del file-device 'pts' di un Terminale"

Da Gambas-it.org - Wikipedia.
(Creata pagina con 'Il caso è quello in cui si deve passare per una qualsiasi ragione al programma Gambas ''a linea di comando'' il numero identificatore di un Terminale aperto. Per fare ciò s...')
 
 
(5 versioni intermedie di uno stesso utente non sono mostrate)
Riga 1: Riga 1:
Il caso è quello in cui si deve passare per una qualsiasi ragione al programma Gambas ''a linea di comando'' il numero identificatore di un Terminale aperto.
+
Il caso è quello in cui si deve passare al programma Gambas ''a linea di comando'', mentre sta funzionando, il numero identificatore di un Terminale aperto   |[[#Note|1]]|.
  
 
Per fare ciò si utilizzerà il file device dello ''standard input'' con la proprietà ''.In'' della Classe ''File'':
 
Per fare ciò si utilizzerà il file device dello ''standard input'' con la proprietà ''.In'' della Classe ''File'':
Riga 8: Riga 8:
 
   
 
   
 
  <FONT color=gray>' ''Esegue il ciclo, finché non sarà stato inviato dal Terminale al programma Gambas un carattere tramite la tastiera:''</font>
 
  <FONT color=gray>' ''Esegue il ciclo, finché non sarà stato inviato dal Terminale al programma Gambas un carattere tramite la tastiera:''</font>
   While s = Null
+
   While IsNull(s)
  <FONT color=gray>' ''Intercetta quanto scritto nel Terminale, ove è stato lanciato il programma Gambas:''</font>
+
  <FONT color=gray>' ''Intercetta quanto scritto (ossia il numero del file-device 'pts' del Terminale) nel Terminale, ove è stato lanciato il programma Gambas:''</font>
 
     Input #File.In, s
 
     Input #File.In, s
 
     fl = Open "/dev/pts" &/ s For Output
 
     fl = Open "/dev/pts" &/ s For Output
  <FONT color=gray>' ''Ricevuto quanto scritto nel Terminale, lo mostra nuovamente con aggiunta di altro testo nel Terminale medesimo:''</font>
+
  <FONT color=gray>' ''Ricevuto quanto scritto (ossia il numero del file-device 'pts' del Terminale) nel Terminale, lo mostra nuovamente con aggiunta di altro testo nel Terminale medesimo:''</font>
 
     Print #fl, "Numero file 'pts' =  " & s
 
     Print #fl, "Numero file 'pts' =  " & s
 
   Wend
 
   Wend
Riga 19: Riga 19:
 
   
 
   
 
  '''End'''
 
  '''End'''
 +
Tale codice offre una soluzione in un programma Gambas ''a linea di comando'' per fare ciò che in un'applicazione grafica l'istruzione ''InputBox'' consente di fare: inviare dati al programma mentre è in funzione.
 +
 +
 +
 +
=Note=
 +
[1] Ovviamente con il codice esposto in questa pagina è possibile passare al programma Gambas ''a linea di comando'' dal Terminale, ove esso è stato lanciato, qualunque dato in formato stringa di caratteri.

Versione attuale delle 19:09, 23 dic 2014

Il caso è quello in cui si deve passare al programma Gambas a linea di comando, mentre sta funzionando, il numero identificatore di un Terminale aperto |1|.

Per fare ciò si utilizzerà il file device dello standard input con la proprietà .In della Classe File:

Public Sub Main()

 Dim fl As File
 Dim s As String

' Esegue il ciclo, finché non sarà stato inviato dal Terminale al programma Gambas un carattere tramite la tastiera:
  While IsNull(s)
' Intercetta quanto scritto (ossia il numero del file-device 'pts' del Terminale) nel Terminale, ove è stato lanciato il programma Gambas:
    Input #File.In, s
    fl = Open "/dev/pts" &/ s For Output
' Ricevuto quanto scritto (ossia il numero del file-device 'pts' del Terminale) nel Terminale, lo mostra nuovamente con aggiunta di altro testo nel Terminale medesimo:
    Print #fl, "Numero file 'pts' =  " & s
  Wend

  fl.Close

End

Tale codice offre una soluzione in un programma Gambas a linea di comando per fare ciò che in un'applicazione grafica l'istruzione InputBox consente di fare: inviare dati al programma mentre è in funzione.


Note

[1] Ovviamente con il codice esposto in questa pagina è possibile passare al programma Gambas a linea di comando dal Terminale, ove esso è stato lanciato, qualunque dato in formato stringa di caratteri.