Search this site
Embedded Files
Mon BBC SDL pas à pas
  • Accueil
  • BBC BASIC
  • BBC OS
  • BBC MODULES
  • RUBRIQUES
  • LIENS
Mon BBC SDL pas à pas
  • Accueil
  • BBC BASIC
  • BBC OS
  • BBC MODULES
  • RUBRIQUES
  • LIENS
  • More
    • Accueil
    • BBC BASIC
    • BBC OS
    • BBC MODULES
    • RUBRIQUES
    • LIENS

⇨ MENU ⇨ BBC BASIC

READ

DESCRIPTION.


L'instruction READ retourne la donnée contenue dans une instruction DATA à la position du pointeur de lecture des données.


L'instruction READ # qui retourne les enregistrements d'un fichier terminés par un Retour Chariot (CR).




SYNTAXE.


READ donneea , doonneeb , ... , donneen




REMARQUES.


donnee doit être l'identifiant d'une variable de même type que la donnée retournée.


Les variables contenues dans une instruction READ peuvent ne pas être déclarées précédemment. Si elles ont été déclaré, leur valeur sera modifiée avec la valeur de la donnée lue à cet emplacement.


L'appel d'une instruction READ peut retourné plusieurs valeurs, à condition de séparer chaque identifiant par une virgule. Bien sûr, chaque identifiant doit être du même type que la valeur attendue.


Les données doivent être listées sur plusieurs instructions DATA.


Si le pointeur de lecture des données a atteint la dernière donnée contenue dans les instructions DATA du script, toute tentative de lecture d'une nouvelle valeur déclenchera une erreur, sauf si une instruction RESTORE, ou RESTORE DATA valide, est utilisée pour déplacer le pointeur de lecture des données sur une position valide. 


Rappel : la ou les listes de données, déclarées par des instructions DATA doivent être présentent en début de script, avant toute autre instruction ou fonction BBC BASIC, à l’exception de l'instruction REM introduisant des ligne de commentaires ou une instruction RESTORE pour ignorer certaines données.



Voir l'instruction DATA pour insérer des données dans un script BBC BASIC.

Voir l'instruction LOCAL DATA pour plus de détails sur la mémorisation du pointeur de lecture des instructions DATA. 

Voir l'instruction RESTORE pour plus détails sur la réinitialisation des données contenues dans les instructions DATA.

Voir l'instruction RESTORE DATA pour plus détails sur le rappel de la mémorisation d'une instruction LOCAL DATA.




EXEMPLES.


Exemple 1. Cas général.

DATA "Janvier" , 31 , "Fevrier" , 28 , "Mars" , 31

DATA "Avril" , 30 , "Mai" , 31 , "Juin" , 30

DATA "Juillet" , 31 , "Aout" , 31 , "Septembre" , 31

DATA "Octobre" , 31 , "Novembre" , 30 , "Decembre" , 31


FOR kvaleur = 1 TO 12

READ kmois$ , kjours : REM - retourne 2 donnees consécutives suivantes

PRINT "Le mois de " ; kmois$ ; " a " ; kjours " jours."

NEXT kvaleur

PRINT "Fin du test."

END



Exemple 2. Restaurer toutes les données.

DATA "Janvier" , 31 , "Fevrier" , 28 , "Mars" , 31

DATA "Avril" , 30 , "Mai" , 31 , "Juin" , 30

DATA "Juillet" , 31 , "Aout" , 31 , "Septembre" , 31

DATA "Octobre" , 31 , "Novembre" , 30 , "Decembre" , 31


REPEAT

REPEAT 

INPUT "Quel mois (de 1 a 12 ) ou 0 pour quitter " , kmois

UNTIL kmois < 13

IF kmois = 0 THEN EXIT REPEAT

FOR kvaleur = 1 TO kmois : READ kmois$ , kjours : NEXT kvaleur

PRINT "Le mois de " ; kmois$ ; " a " ; kjours " jours."

RESTORE : REM - replace le ppointeur sur la premiere donnee de la premiere instruction DATA

UNTIL FALSE

PRINT "Fin du test."

END



Exemple 3. Ignorer certaines données.

Restore +3 : REM - ignorer les 2 premieres instructions DATA

DATA 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10

DATA 11 , 12 , 13 , 14 , 15 , 16 , 17 , 18 , 19 , 20

DATA 21 , 22 , 23 , 24 , 25 , 26 , 27 , 28 , 29 , 30

DATA 31 , 32 , 33 , 34 , 35 , 36 , 37 , 38 , 39 , 40


READ kdonnee : REM - retourne la premiere donnee de la troisieme instruction DATA

PRINT kdonnee

RESTORE : REM - replace le pointeur sur la premiere donnee de la premiere instruction DATA

READ kdonnee : REM - retourne la premiere donnee de la premiere instruction DATA

PRINT "Fin du test."

END



Exemple 4. Mémoriser et restituer la position du pointeur.

DATA 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10

DATA 11 , 12 , 13 , 14 , 15 , 16 , 17 , 18 , 19 , 20

DATA 21 , 22 , 23 , 24 , 25 , 26 , 27 , 28 , 29 , 30

DATA 31 , 32 , 33 , 34 , 35 , 36 , 37 , 38 , 39 , 40


khasard = RND( 10 ) + 15

PRINT "Premiere serie."

FOR kvaleur = 1 TO khasard

READ kentier

PRINT STR$( kentier ) ; " " ;

NEXT kvaleur


FOR ktour = 1 TO 2

LOCAL DATA : REM - memorise la position du pointeur de lecture

PRINT

PRINT "Deuxieme serie - lecture : " ; ktour

FOR kvaleur = ( khasard + 1 ) TO 40

READ kentier

PRINT STR$( kentier ) ; " " ;

NEXT kvaleur

RESTORE DATA : REM - reposition le pointeur sur sa position memorise

NEXT ktour


PRINT

READ kdebut

PRINT "La serie 2 commence a la valeur : " ; kdebut

PRINT "Fin du test."

END

Votre aide est précieuse pour améliorer ce site, alors n'hésitez pas à faire part de

vos remarques, vos commentaires et de vos suggestions.

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.

Google Sites
Report abuse
Page details
Page updated
Google Sites
Report abuse