File.In (gb)

Static Property Read In As File

Restituisce lo stream di input standard.

Questo esempio dimostra come leggere e scrivere sullo standard input, output ed error. Dimostra l'uso di File.In, File.Out e File.Err. Ogni linea vista sullo standard input viene ripetuta prima sullo standard output e quindi sullo standard error.

Esempio

PUBLIC SUB Main()
  DIM inputLine AS String
  ' Cicla fino alla fine dello stream del file dello standard input
  WHILE NOT Eof(File.In)
    ' Legge una riga dallo standard input. Questo è lo stesso di:
    ' LINE INPUT inputLine
    LINE INPUT #File.In, inputLine
    ' Scrive sullo standard output. Questo è lo stesso di:
    ' PRINT inputLine
    PRINT #File.Out, inputLine
    ' Scrive sullo standard error
    PRINT #File.Err, inputLine
  WEND
END

Crea un'applicazione da riga di comando e inserisci il codice nel modulo di avvio. Se si esegue questo esempio nella IDE di Gambas, l'applicazione sembrerà bloccarsi. Se si immette del testo nella finestra della console della IDE, a ciascuna riga verrà restituito l'eco due volte. Ma poiché l'applicazione non vede mai la fine del file dallo stream dello standard input, sarà necessario interrompere il progetto.

Per avere un'idea migliore di ciò che l'esempio sta facendo, crea un eseguibile dal tuo progetto. Supponiamo di chiamare questo eseguibile pipe.gambas. Apri un terminale Linux nella directory in cui hai salvato l'eseguibile. Se inserisci il comando:

ls -a | ./pipe.gambas

vedrai che ogni riga del comando ls -a ti viene ripetuta due volte. Una volta dallo standard output e una volta dallo standard error. Questa volta l'applicazione vedrà la fine del file dallo stream dello standard input e quindi termina correttamente. Ora prova:

ls -a | ./pipe.gambas > files.txt

qui reindirizziamo lo stream dello standard output a un file di testo e potrai vedere lo stream dello standard output di errore nella finestra del terminale. Ora dovresti avere un file nella directory con l'output del comando ls -a.