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

Da Gambas-it.org - Wikipedia.
 
(4 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 9: Riga 9:
 
  <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 IsNull(s)
 
   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.