INPUT #
DESCRIPTION.
L'instruction INPUT # retourne les enregistrements d'un fichier ouvert terminés par un Retour Chariot (CR).
SYNTAXE.
INPUT #kfichier&, kdonnee$
INPUT#kfichier&, kdonnee$
INPUT #kfichier&, kdonnee
INPUT#kfichier&, kdonnee
REMARQUES.
kfichier& doit être une valeur numérique correspondant au canal de communication avec un ficher ouvert valide.
Pour la lecture des données présentes dans un fichier de données, on utilisera de préférence l'instruction INPUT # qui retourne tous les caractères lus jusqu'à la présence d'un caractère RC (Retour Chariot). Cette chaine de caractères sera placée dans la variable indiquée comme deuxième paramètre. Puis le pointeur, associer au fichier, est placé sur le caractère suivant dans le fichier.
Il est possible de lire plusieurs enregistrements avec une seule instruction INPUT #, en séparant les variables par une virgule : INPUT #kfichier&, ka$ , kb , ... , kn$. Attention, les types des variables doivent correspondre aux types des données lues.
L'utilisation de l'instruction INPUT # ne modifie pas, et n'efface pas, les données lues.
Il est tout à fait possible de lire des données numériques avec l'instruction INPUT #, à condition qu'elles aient été enregistrées dans ce format, en donnant comme deuxième paramètre une variable de type numérique. A ce propos, la documentation officielle précise que : "Le format des fichiers de données diffère selon le mode *FLOAT en vigueur (en mode *FLOAT 40, les valeurs numériques sont écrites sur 5 octets, en mode *FLOAT 64 sur 8 octets et en mode *FLOAT 80 sur 10 octets). Lors de la lecture de valeurs numériques avec INPUT # (ou READ #), assurez-vous que le mode *FLOAT utilisé est identique à celui utilisé lors de leur écriture."
Il est possible de lire un fichier de données, caractère par caractère, en utilisant l'instruction BGET #.
Si on n'est pas sûr du caractères de terminaison des enregistrements du fichier, par exemple s'il provient d'une source externe, ou si l'on souhaite obtenir des enregistrements d'une longueur fixe, on utilisera de préférence l'instruction GET$# pour lire les données du fichier.
Note : les instruction INPUT # et READ # sont synonymes est peuvent être employées indifféremment. Mais les instructions INPUT et READ ne sont pas synonymes et ont des utilisations différentes.
ATTENTION à ne pas confondre les instructions INPUT et INPUT #.
RUBRIQUE.
Les fichiers de données pour plus de détails sur la création et l'utilisation des fichiers de données.
EXEMPLE.
1. Lecture d'un seul enregistrement par appel de INPUT #.
REM --- Initialisation ---
kfichier$ = @dir$ + "Tester.txt"
REM --- Création du fichier et enregistrement ---
kfichier& = OPENOUT( kfichier$ )
PRINT #kfichier&, "BBC BASIC SDL 2.0"
PRINT #kfichier&, "Mon BBC BASIC pas a pas"
PRINT #kfichier&, "Origine NERD"
CLOSE #kfichier&
REM --- Lecture des enregistrements avec OPENIN ---
FOR klecture = 1 TO 2 :
kfichier& = OPENIN( kfichier$ )
INPUT #kfichier&, kdonnee$ : PRINT kdonnee$
INPUT #kfichier&, kdonnee$ : PRINT kdonnee$
INPUT #kfichier&, kdonnee$ : PRINT kdonnee$
CLOSE #kfichier&
NEXT klecture
REM --- Fin de l'exemple ---
END
retourne :
BBC BASIC SDL
Mon BBC BASIC pas a pas
Origine NERD
BBC BASIC SDL
Mon BBC BASIC pas a pas
Origine NERD
2. Lecture de plusieurs enregistrements par appel de INPUT #.
REM --- Initialisation ---
kfichier$ = @dir$ + "Tester.txt"
REM --- Création du fichier et enregistrement ---
kfichier& = OPENOUT( kfichier$ )
PRINT #kfichier&, "BBC BASIC SDL "
PRINT #kfichier&, 2.0
PRINT #kfichier&, "Mon BBC BASIC pas a pas"
PRINT #kfichier&, "Origine NERD"
CLOSE #kfichier&
REM --- Lecture des enregistrements ---
kfichier& = OPENIN( kfichier$ )
INPUT #kfichier&, ka$ , kb , kc$ , kd$
CLOSE #kfichier&
PRINT ka$ ; kb
PRINT kc$
PRINT kd$
REM --- Fin de l'exemple ---
END
retourne :
BBC BASIC SDL 2.0
Mon BBC BASIC pas a pas
Origine NERD
Votre aide est précieuse pour améliorer ce site, alors n'hésitez pas à faire part de
Dans la RETROGICIEL vous trouvez des suggestions simples et classiques pour
TESTER - DÉCOUVRIR - PRATIQUER - APPROFONDIR - EXPLORER
avec un exemple de résolution à télécharger pour vous inspirer.