Documentation de Gambas - /comp/gb/file/in

/comp/gb/file/in

# File.In (gb)

Static Property Read In As File

Retourne le flux d'entrée standard.

L'exemple suivant montre comment lire et écrire dans les entrées et sortie standards ainsi que la sortie d'erreur. L'utilisation de File.In, File.Out et File.Err est ilustrée. Chaque ligne vue sur l'entrée standard est réaffichée en premier sur la sortie standard puis sur la sortie d'erreur.

### Exemples

    PUBLIC SUB Main()
      DIM inputLine AS String
      ' Boucle tant que la fin du flux de fichier n'est pas atteinte
      WHILE NOT Eof(File.In)
        ' Lis une ligne depuis l'entrée standard. C'est équivalent a:
        ' LINE INPUT inputLine
        LINE INPUT #File.In, inputLine
        ' Affiche sur la sortie standard. C'est semblable à :
        ' PRINT inputLine
        PRINT #File.Out, inputLine
        ' Affiche sur la sortie d'erreur
        PRINT #File.Err, inputLine
      WEND
    END

Créez une application en ligne de commande puis placez le code ci-dessus dans le module de démarrage. Si vous lancez cet exemple dans l'EDI Gambas l'application semblera se bloquer. Si vous entrez du texte dans la console de l'EDI, chaque ligne sera affichée deux fois. Mais comme l'application ne verra jamais la fin de fichier du flux d'entrée standard, vous devrez stopper le projet.

Pour avoir une meilleure idée de ce que fait l'exemple, le mieux est de créer un exécutable depuis le projet. Supposons que nous appelons cet exécutable `pipe.gambas`. Maintenant ouvrez un terminal et allez dans le répertoire du projet où se trouve l'exécutable. Si vous entrez la commande:

    ls -a | ./pipe.gambas

Vous verrez que chaque ligne produite par `ls -a` s'affichera deux fois. Une fois depuis l'entrée standard, et une seconde fois depuis la sortie d'erreur. Cette fois l'application verra la fin du fichier depuis le flux d'entrée standard et se termina correctement. Maintenant essayez :

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

Ici nous redirigeons le flux d'entrée standard vers un fichier, et vous verrez seulement la sortie d'erreur standard émise vers le terminal. Vous devriez maintenant avoir un fichier dans le répertoire contenant la sortie de la commande `ls -a`.