LOCAL DATA
DESCRIPTION.
L'instruction composée LOCAL DATA mémorise la position du pointeur de lecture des données contenues dans les instructions DATA.
Voir l'instruction LOCAL pour déclarer des variables de portée locale dans une fonction personnalisée PROC ou FN.
SYNTAXE.
LOCAL DATA
REMARQUES.
L'appel de LOCAL DATA permet de mémoriser la position du pointeur de lecture des données contenues dans les instructions DATA. Cette valeur pourra être restituée, pour replacer le pointeur de lecture sur cette position, avec l'appel de l'instruction composée RESTORE DATA.
Lors d'un appel de l'instruction composée LOCAL DATA, le pointeur de lecture des données n'est pas déplacé. Sa position reste donc inchangée, et l'instruction READ retournera la valeur de la donnée suivante comme d'habitude.
Cette instruction composée sera très utile pour restaurer le pointeur de lecture de données à la sortie d'une boucle instruction FOR, REPEAT ou WHILE, mais aussi au retour d'une procédure ou fonction personnalisée.
L'utilisation de RESTORE DATA ou de LOCAL DATA efface la valeur mémorisée par l'appel de LOCAL DATA précédent.
Voir l'instruction DATA pour insérer des données dans un script BBC BASIC.
Voir l'instruction READ pour plus détails sur la lecture des données contenues dans les 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 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10
READ ka , kb , kc : PRINT "Serie 1 : " , ka , kb , kc
LOCAL DATA
READ ka , kb : PRINT "Serie 2 : " , ka , kb
READ ka , kb : PRINT "Serie 3 : " , ka , kb
READ ka , kb : PRINT "Serie 4 : " , ka , kb
RESTORE DATA
READ ka , kb , kc : PRINT "Serie 5 : " , ka , kb , kc
END
retourne :
Serie 1 : 0 1 2
Serie 2 : 3 4
Serie 3 : 5 6
Serie 4: 7 8
Serie 5 : 3 4 5
Exemple 4. Dans une boucle d'instruction.
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 "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
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
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.