Passare in runtime il numero del file-device 'pts' di un Terminale

Da Gambas-it.org - Wikipedia.

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 [nota 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.