DATA
DESCRIPTION.
L'instruction DATA introduit une liste de données brutes, numériques et/ou alphanumérique, qui pourront être accessibles avec l'instruction READ.
Voir l'instruction LOCAL DATA pour mémoriser la position actuelle du pointeur de données des DATA.
Voir l'instruction RESTORE DATA pour repositionner le pointeur à la position mémorisée par LOCAL DATA.
SYNTAXE.
DATA donneea , doonneeb , ... , donneen
REMARQUES.
donnee doit être une chaine de caractères ou une valeur numérique.
Bien que les chaines de caractères puissent être notées sans présence de guillemets ("), sauf si elles doivent contenir des virgules ou des espaces de début et/ou de fin, cette pratique reste déconseillée. Les données numériques, elles, ne doivent jamais être entourées de guillemets, mais peuvent être des opérations mathématiques (+, -, *, /, ...).
Les données numériques et alphanumériques peuvent se trouver sur une même ligne.
Les données doivent être séparées par une virgule. La dernière donnée ne doit pas être suivie d'une virgule.
Les données peuvent être listées sur plusieurs instructions DATA.
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.
Les données contenues à la suite des instructions DATA pourront être lues, acquises, grâce à une ou plusieurs instruction READ.
L'instruction RESTORE permet de réinitialiser le pointeur de lecture des données à la première données ou à une position définit.
L'instruction combinée LOCAL DATA enregistre la position actuelle du pointeur de lecture des données, pour le replacer sur cette position lors d'un appel de l'instruction combinée RESTORE DATA. 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 LOCAL DATA pour plus de détails sur la mémorisation du pointeur de lecture des instructions DATA.
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 "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 "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.