QBasic – L’organisation des données
- QBasic – Introduction au QBasic
- QBasic – Ecrire sur l’écran
- QBasic – Mathématiques élémentaires
- QBasic – La ponctuation (syntaxe)
- QBasic – Les variables
- QBasic – Les commentaires
- QBasic – Les constantes
- QBasic – Entrée de données
- QBasic – Les boucles inconditionnelles
- QBasic – Les boucles conditionnelles
- QBasic – Structure conditionnelle
- QBasic – Les cas
- QBasic – Maths, logique et divers
- QBasic – Le texte
- QBasic – Le son
- QBasic – Dessiner
- QBasic – Sous-programmes, fonctions et procedures
- QBasic – Les types de variables
- QBasic – Les tableaux
- QBasic – Les types personalisés
- QBasic – L’organisation des données
- QBasic – QBasic et le système d’exploitation
- QBasic – L’accès aux fichiers
- QBasic – Le traitement des erreurs
- QBasic – La manette de jeu
- QBasic – Encore plus loin dans le graphisme
- QBasic – La mémoire
- QBasic – Le langage machine et la souris
- QBasic – L’heure, la date, le temps
- QBasic – Le clavier
Lorque dans un programme on doit utiliser une multitude de données, on peut se simplifier la
vie en les organisant d’une manière très simple avec les instructions DATA, READ et
RESTORE.
Le stockage des données
Pour stocker les données, on utilise DATA. On écrit
DATA, suivi des données, tout enveillant de les séparer par une virgule. Les données peuvent être soit numériques, soit chaines
de caractères, soit les deux. Voici un exemple d’application :
DATA « Socrate », « Platon », « Aristote »
DATA 666, 2000, 3.14159265458
DATA « Pascal », 7
Pour les chaînes de caractères, il n’est pas utile de les stocker avec les guillemets. Mais
des qu’il y a plusieurs mots, il deviennent nécessaires.
Les
DATA peuvent se situer n’importe où dans le code, l’effet sera le même. La coutumeveut qu’on les stocke à la fin du code. Par contre, ils ne peuvent en aucun cas se trouver
dans une procédure.
Les commentaires en fin de ligne sont interdit avec DATA, sous peine de les voir interprétés
comme des données !
Accès au données
Pour accéder aux données, on utilise l’instruction READ, suivi du nom d’une variable (
une seule). Cette variable va prendre la valeur de la première donnée stockée dans les
DATA.Dans notre exemple, ce sera
Socrate.Vu que
Socrate est une chaîne de caractères, la variable utilisée devra être dumême type, sous peine de voir le fameaux message d’erreur : ‘Types incompatibles’.
Ensuite, on peut utiliser la variable comme n’importe quel autre variable.
READ Chaine$ ‘ lecture du DATA
PRINT Chaine$ ‘ affichage de la donnéeDATA « Socrate », « Platon », « Aristote »
Maintenant, si on ré-utilise
READ, l’instruction va lire la deuxième donnée, c’est à direPlaton. Après, si on la ré-ré-utilise, se sera la troisième donnée(
Aristote), et ainsi de suite, jusqu’a plus soif.Le plus soif se manifeste par un message d’erreur caractèristique. Pour l’obtenir (but
rarement recherché !), essayez le programme suivant :
DO
READ Chaine$ ‘ lecture du DATA
PRINT Chaine$ ‘ affichage de la donnée
LOOPDATA « Socrate », « Platon », « Aristote »
C’est pourquoi il faut réinitialiser la liste avec l’instruction RESTORE. Utilisée
comme ça,
RESTORE se contante de revenir à la première donnée du premier DATA :
DO
FOR i = 1 TO 3
READ Chaine$ ‘ lecture du DATA
PRINT Chaine$ ‘ affichage de la donnée
NEXT i
RESTORE
LOOP ‘ appuyez sur CONTROL + PAUSEDATA « Socrate », « Platon », « Aristote »
Ou alors, on peut utiliser
RESTORE suivit du numéro de l’étiquette de la ligne du DATAchoisi. Pour définir un numéro, on s’y prend à la manière des vieux BASIC, en apposant tout
simplement le numéro de la ligne devant le
DATA. Ainsi :
FOR i = 1 TO 3
READ Chaine$ ‘ lecture du DATA
PRINT Chaine$ ‘ affichage de la donnée
NEXT iRESTORE 2 ‘ on va à la ligne 2
READ Chaine$ ‘ re-lecture du DATA
PRINT Chaine$ ‘ affichage de la donnée. sortie : Platon1 DATA « Socrate »
2 DATA « Platon »
3 DATA « Aristote »
Avec les labels, ça aurait donné :
FOR i = 1 TO 3
READ Chaine$ ‘ lecture du DATA
PRINT Chaine$ ‘ affichage de la donnée
NEXT iRESTORE Platon ‘ on va à la ligne Platon
READ Chaine$ ‘ re-lecture du DATA
PRINT Chaine$ ‘ affichage de la donnée. sortie : PlatonSocrate: DATA « Socrate »
Platon: DATA « Platon »
Aristote: DATA « Aristote »
READ peut aussi lire plusieurs variables d’un seul et unique coup. Il suffit d’écrirele nombre de variables (du bon type !) désirées séparées par des virgules, à la suite de
READ :
READ Chaine1$, Chaine2$, Chaine3$ ‘ lecture du DATA
PRINT Chaine1$, Chaine2$, Chaine3$ ‘ affichage des donnéesDATA « Socrate », « Platon », « Aristote »